2011-03-22 65 views
1

我有一系列的域名停放在LAMP服務器的賬號上,可用於mod_rewrite。我想達到以下目的:停放域名通配符301重定向

我正在尋找domain1.com是「主」 - 這個想法是,應該有以下重定向(與301狀態爲最大的SEO優勢):

domain2.com重定向到domain1.com
domain3.com重定向到domain1.com的
domain2.com/foo/重定向到 domain1.com/foo/ domain3.com/foo/ 重定向到DOMAIN1 .com/foo/
domain2.com/foo/bar/重定向到 domain1.com/foo/bar/
domain3.com/foo/bar/重定向到 domain1.com/foo/bar/

等等......

實際上,我想實現某種通配符的混合,以便/ foo /和/ bar /的子頁面也被重定向到domain1.com上相同的URL

我一直在尋找有關.htaccess文檔的高和低,但似乎無法找到我正在尋找的解決方案。因此,我想知道如果任何你可能有一些指針 - 將是非常讚賞:)

回答

1

對於每個domain2.com和domain3.com的,你想看起來像一個.htaccess:

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

如果您的所有域名都停在同一主機上,然後下面的規則會爲你工作:

Options +FollowSymlinks -MultiViews 
RewriteEngine on 

# handles domain2/* -> domain1/* for http 
RewriteCond %{HTTP_HOST} ^(www\.)?domain2.com$ [NC] 
RewriteCond %{SERVER_PORT} =80 
RewriteRule ^(.*)$ http://domain1.com/$1 [R=301,L] 

# handles domain2/* -> domain1/* for https 
RewriteCond %{HTTP_HOST} ^(www\.)?domain2.com$ [NC] 
RewriteCond %{SERVER_PORT} =443 
RewriteRule ^(.*)$ https://domain1.com/$1 [R=301,L] 

# handles domain3/* -> domain1/* for http 
RewriteCond %{HTTP_HOST} ^(www\.)?domain3.com$ [NC] 
RewriteCond %{SERVER_PORT} =80 
RewriteRule ^(.*)$ http://domain1.com/$1 [R=301,L] 

# handles domain3/* -> domain1/* for https 
RewriteCond %{HTTP_HOST} ^(www\.)?domain3.com$ [NC] 
RewriteCond %{SERVER_PORT} =443 
RewriteRule ^(.*)$ https://domain1.com/$1 [R=301,L] 

放在你DOCUMENT_ROOT的.htaccess文件。

+1

我在wordpress網站上使用了您的解決方案。我不得不把這些規則**上面**的WordPress的規則。 +1 – TecBrat 2015-01-09 12:06:32