2

我的.htaccess文件中有两种不同的规则。第一组匹配确切的文件,然后我对其他所有内容都有一个通用的包罗万象。我读过你可以使用[L]for rewrite 规则,但是有 for 的等价物Redirect 301吗?例如,我的.htaccess文件如下所示:

Redirect 301 /exact_page.html http: //www.newsite.com/new_page1.html

Redirect 301 /some_other_page.html http ://www.newsite.com/new_page2.html

RewriteEngine on
RewriteRule ^(.*)$ http://www.newsite.com/$1 [R=301,L]

我想要的是页面exact_page.htmlsome_other_page.html完全按照所示重定向,其他所有内容都从域映射到新域,其余的 url 完好无损。相反,在我看来,前两个Redirect 301被忽略了,或者更准确地说,被最终规则所取代。有没有办法告诉 apache 在找到第一个匹配项后停止?

4

1 回答 1

1

我认为这样的事情应该有效:

RewriteEngine on

RewriteCond %{REQUEST_URI} !^/(exact_page\.html|some_other_page\.html)$
RewriteRule ^(.*)$ http://www.newsite.com/$1 [R=301,L]

RewriteRule ^exact_page\.html$ http://www.newsite.com/new_page1.html [R=301,L]
RewriteRule ^some_other_page\.html$ http://www.newsite.com/new_page2.html [R=301,L]
于 2013-06-17T18:51:14.123 回答