phpStudy环境下配置ThinkPHP框架URL重写失败

介绍

本地虚拟主机使用的是phpStudy

程序代码使用的是ThinkPHP 3.2

配置URL重新去除每次访问的Index.php,结果一直报错:No input file specified

解决

配置URL重写

  • 点击phpStudy → 其他选项 → 打开配置文件 → httpd-conf。修改``httpd.conf`文件
# 1. 找到下面这行配置,去掉前面的 “#”,如果已经去掉,忽略此操作 LoadModule rewrite_module modules/mod_rewrite.so # 2. 找到AllowOverride None,将None改为All,如下: <Directory /> Options +Indexes +FollowSymLinks +ExecCGI AllowOverride All Order allow,deny Allow from all Require all granted </Directory>
  • 如果配置了虚拟主机,同样找到设置的主机Directory(点击phpStudy → 其他选项 → 打开配置文件 → vhosts-ini),将AllowOverride None改为AllowOverride All

  • 在项目根目录下创建.htaccess

<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L] </IfModule>

修改PHP运行模式

正常情况下,按照以上配置结束后就可以实现URL重写的效果

但有时仍然会报错。原因是因为PHP运行模式是nts(非线程安全),而在windows下要使用ts(线程安全)的PHP版本

  • 点击phpStudy → 切换版本 → 选择一个没有-nts标识的版本

php的ts和nts选择


创作不易,若本文对你有帮助,欢迎打赏支持作者!

 分享给好友: