由于我们迁移到新服务器,因此我们的某些页面被破坏(404)。原因是我们有2个破坏的重写规则。 真正奇怪的是,如果我更改文件夹的名称,它们会起作用。 例如,这项工作:
RewriteRule ^anything/([a-zA-Z0-9-]+)/$ page.php?var=$1 [L]
这不是:
RewriteRule ^myfolder/([a-zA-Z0-9-]+)/$ page.php?var=$1 [L]
我甚至找不到制作301重定向的技巧,因为我原来的“myfolder /”虚拟文件夹从不匹配。
任何想法发生了什么?我认为这可能是一个规则覆盖或类似的东西(因为它托管在多功能解决方案上),但我的主站点根本没有这样的规则。它让我疯狂。 THX!
答案 0 :(得分:2)
在实践中,你可能想要做两件事。如果请求是真实目录,则禁用多视图并绕过规则。
Options -MultiViews #turn off automatic URI matching, can cause weirdness
RewriteEngine on
#stop here if the request is a real file or directory
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^myfolder/([a-zA-Z0-9-]+)/?$ /page.php?var=$1 [L]