这是我遇到的一个问题:
我的虚拟主机配置为将不存在的文件重写为 /init.php?REQUEST。例如:www.test.com/module/action 将重写为 /init.php?module/action。这是一个非常常见的功能,通过以下方式实现:
<Directory /path/to/test.com/htdocs/> RewriteEngine on RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ init.php?$1 </Directory>
现在我试图打开这个:
location.href = 'http://www.test.com/module/action/' + encodeURIComponent('htp://www.google.com/');
但是现在 apache 甚至没有进入重写部分就抛出了 404 页面。
- 事实 1:它的发生是因为 %2F 符号(正斜杠)
- 事实 2:apache 甚至没有进入 <Directory> 规则。很明显,我们想要 htdocs/ 下的东西,那么为什么 apache 不进入目录规则?
有人可以向我解释一下为什么斜线符号会搞砸吗?
谢谢你的想法