很抱歉,此前无疑已多次询问此问题,我只想澄清以下代码会将olddomain.com上的任何网址重定向到newdomain.com 主页而非等效网址:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.olddomain\.com$
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} !^olddomain\.com$
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
另外,如果我想在olddomain.com eg.subdomain.olddomain.com上的任何子域名转到newdomain.com的主页,我该怎么办?我可以使用通用选择器,还是必须为每个子域写一个条件,如下所示:
RewriteCond %{HTTP_HOST} ^subdomain.olddomain.com$
RewriteRule ^(.*)$ http://subdomain.newdomain.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.subdomain.olddomain.com$
RewriteRule ^(.*)$ http://subdomain.newdomain.com/$1 [R=301,L]
答案 0 :(得分:1)
两次尝试都不正确,因为首先会重定向:
http://olddomain.com/foobar to http://newdomain.com/foobar
不要访问newdomain
的主页。同样是第二条规则的问题。
您可以在DOCUMENT_ROOT/.htaccess
文件中使用此代码:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?olddomain\.com$ [NC]
RewriteRule ^ http://www.newdomain.com/ [R=301,L]
RewriteCond %{HTTP_HOST} ^(www\.)?subdomain\.olddomain\.com$ [NC]
RewriteRule ^ http://subdomain.newdomain.com/ [R=301,L]