在 apache 中重写规则不生效的问题 [No input file specified.] 解决
解决办法
首先请确保你的vhost配置正确,因为这篇文章不是解决vhost配置的问题的
我的vhost 大致如下:
修改
找到项目根目录下的 public 目录找到.htaccess文件打开,找到下边这句
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
问题就出在这儿。修改为以下(仔细看一遍,是有区别的哦)
RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
记得重启apache
如果自定义了入口的.php 文件 ,如下本人的.htacess 文件
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews -Indexes
</IfModule>
RewriteEngine On
# 重定向 pc 的资源目录路径
RewriteCond %{HTTP_HOST} ^www\.666test\.com$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ pc/$1
# 重定向 pc 的入口文件
RewriteCond %{HTTP_HOST} ^www\.6666test\.com$
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ pc.php [L]
# 重定向 pc 带参数的处理
RewriteCond %{HTTP_HOST} ^www\.6666test\.com$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ pc.php?/$1 [L]
# 重定向 mobile 的资源目录路径
RewriteCond %{HTTP_HOST} ^m\.6666test\.com$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ m/$1
# 重定向 mobile 的入口文件
RewriteCond %{HTTP_HOST} ^m\.6666test\.com$
RewriteCond %{REQUEST_URI} ^/$
RewriteRule ^(.*)$ mobile.php [L]
# 重定向 mobile 带参数的处理
RewriteCond %{HTTP_HOST} ^m\.6666test\.com$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ mobile.php?/$1
</IfModule>
请同样加上一个 ?
本作品采用《CC 协议》,转载必须注明作者和本文链接