%85%AE使Apache的Rewriter失效???

我在.htaccess文件里面添加了如下内容:

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

然后当我输入http://127.0.0.5/Style/main/本兮http://127.0.0.5/Style/main/%... )进行访问时,出现了apache自带的404页面,但把后面的“本兮”换成其他汉字时访问是正常的!!!
经过我的排查,发现只要访问所用的汉字的url编码中含有“%85%AE”就会导致404!!!
我还发现了另外一个神奇的BUG:当访问http://127.0.0.5/兮http://127.0.0.5/%E5%85%AE )时,服务器报404 Object not found,,,
但是当访问
http://127.0.0.5/%85%AE
http://127.0.0.5/%85
http://127.0.0.5/%AE
服务器会报403 Access forbidden
这是怎么回事???

阅读 2.5k
1 个回答

RewriteRule ^(.*)$ index.php/$1 [QSA,NU,PT,L]

在伪静态规则后面加上 [QSA,NU,PT,L] 配置完成

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题