问题描述
|
我需要将.htaccess中的
http://oldsite.com/some/content
重定向到http://newsite.com/some/content
,但仅重定向该页面(嗯,两页,思路相同)。
从我看到的内容来看,301重定向不占用主机,仅占用第一个参数中的路径,并且
Redirect 301 /some/content http://newsite/some/content
这是行不通的,因为oldsite.com是newsite.com的ServerAlias(可能不理想,但是那部分不在我手中),而且上面的规则似乎导致了重定向循环。
做到这一点的最佳方法是什么?我无法使用PHP解决方案,因为重定向需要在同一.htaccess中的另一条规则执行之前执行。
解决方法
您可以设置一个env变量来标识站点,例如:
SetEnvIf default-site ^ site=new
SetEnvIfNoCase Host ^oldsite\\.com$ site=old
...并使用mod_rewrite执行条件重定向:
RewriteCond %{ENV:site} =old [NC]
RewriteRule ^(.*)$ http://newsite.com%{REQUEST_URI} [NE,R=permanent,L]