我希望有人能帮助我。
这是我的.htaccess文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
如下所示的URL将成功重写:
http://jobs2.local/main/out/16339404/http://www.google.com/
但是,如果我对URL的最后一部分(http://www.google.com/部分)进行编码,则会收到404错误:
http://jobs2.local/main/out/16339404/http%3A%2F%2Fwww.google.com%2F
罪魁祸首似乎是%2F,但我不明白为什么会发生这种情况。
你们有谁知道问题是什么?
谢谢。
答案 0 :(得分:0)
我想出来了。
问题是Apache不喜欢%2F。
解决方案是将“AllowEncodedSlashes On”添加到网站的httpd.conf中的VirtualHost条目,例如
<VirtualHost *:80>
AllowEncodedSlashes On
ServerName jobs2.local
...
</VirtualHost>
我已对此进行了测试,并且按预期工作。