我需要将http://oldsite.com/some/content
重定向到.htaccess中的http://newsite.com/some/content
,但仅限于该页面(嗯,两页,具有相同的想法)。
从我所看到的情况来看,301重定向不占用主机,只占第一个参数中的路径,
Redirect 301 /some/content http://newsite/some/content
不会起作用,因为oldsite.com是newsite.com的ServerAlias(可能不理想,但那部分不在我手中),而且似乎上面的规则会导致重定向循环。
实现这一目标的最佳方法是什么?我不能使用PHP解决方案,因为重定向需要在同一个.htaccess中的另一个规则之前执行。
答案 0 :(得分:1)
您可以设置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]