将Web文件夹目录重定向到另一个htaccess

时间:2014-11-27 08:02:17

标签: .htaccess mod-rewrite

很抱歉,此前无疑已多次询问此问题,我只想澄清以下代码会将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]

1 个答案:

答案 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]