我有一系列域名停放在LAMP服务器上的帐户上,并且mod_rewrite可以执行。我想实现以下目标:
我正在寻找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文档的高低,但似乎找不到我想要的解决方案。因此,我想知道你们中是否有人可能会有一些指示 - 非常感谢:)
答案 0 :(得分: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 :(得分:1)
对于domain2.com和domain3.com中的每一个,您需要一个看起来像这样的.htaccess:
RewriteEngine on
RewriteRule ^(.*) http://domain1.com/$1 [R=301,L]