我遇到了令人沮丧的Apache重写规则和301重定向问题。
我们有一个广泛的RewriteRules列表,所有这些都可以正常工作。现在我希望任何访问我们网站根目录的人都被重定向到另一个网站。以下是Apache中适用的重写规则:
RewriteRule "^/index.html" "http://newsite.somewhere.com" [R=301,L]
RewriteRule "^/special-programs" "http://newsite.somewhere.com/special-programs/" [R=301,L]
RewriteRule "^/prospective/" "http://newsite.somewhere.com/adms" [R=301,L]
RewriteRule "^/current/careers/" "http://newsite.somewhere.com/careers" [R=301,L]
RewriteRule "^/current/" "http://newsite.somewhere.com/current" [R=301,L]
除了第一个重定向之外,每个重定向都起作用,即网站的根目录。它使用默认值重定向。但是,只要我添加[R = 301,L],它就会立即停止全部重定向,而其他重定向继续正常工作。 (301重定向是必需的;我们不能使用默认的302.)
我将补充说,这些重定向有很多(几十个),但它们都不涉及网站的根目录。
我尝试将RewriteRule移动到顶部,底部和其他一些地方。没变。我不愿意评论上面的几十条重写规则,但如果最后的话,它会这样做。
重写规则位于/etc/httpd/conf.d。
下的conf文件中这似乎是一个简单的场景,所以我不清楚为什么301重定向无法正常工作。如果有人能提供一些见解,那将非常感激。非常感谢你!