给出以下文件夹“de”:
.
..
index.php
faq.php
如果我尝试从我的.htaccess(在父目录中)触发RewriteRule,如下所示:
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^de/test/ de/faq.php [NC,L]
...它完全正常,但如果我这样试试:
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteRule ^de/faq/ de/faq.php [NC,L]
然后Apache返回“404 Not found”而不是触发RewriteRule。
为什么会这样?
答案 0 :(得分:1)
Options +FollowSymLinks -MultiViews
如果启用了MultiViews,它将尝试搜索类似的文件和文件夹,从而为什么规则不起作用,当你禁用它时,它会停止这样做,这就是它工作的原因。
要进行更深入的调查,您可以在网络服务器中启用RewriteLog
:
RewriteLog "/some/path/to/file/rewrite.log"
RewriteLogLevel 3
通过这种方式,您可以查看启用和禁用MultiView时的行为方式和查找内容。