对于同一个网络应用,我有3个域名,因为我不希望有重复的内容,我想将其他两个域名重定向到主域名。
如果用户输入client_xyz.domain2.com
,则应将其重定向到client_xyz.primarydomain.com
。
如果用户输入client_xyz.domain2.com/folder/file/etc
,则应将其重定向到client_xyz.primarydomain.com/folder/file/etc
。
如果用户输入domain2.com/test/page
,则应将其重定向到primarydomain.com/test/page
我认为这是避免Google因重复内容而受到惩罚的最佳解决方案。 如果您认为有更好的解决方案(例如DNS),请告诉我。
答案 0 :(得分:2)
将此代码放入.htaccess文件中:
Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteOptions MaxRedirects=10
RewriteCond %{HTTP_HOST} ^(client_xyz\.)?domain2\.com$ [NC]
RewriteRule ^ http://%1primarydomain.com%{REQUEST_URI} [NE,R=301,L]
答案 1 :(得分:0)
您可以在.htaccess文件中使用正则表达式,因此请设置301(永久移动)重定向。
RedirectMatch 301 (^.*?\.|^)domain2.com(.*) $1.primarydomain.com$2
未经测试,但应该没问题。
[编辑]自从您的评论以来,下面的内容相当无用,但无论如何我都会留在这里。
或者,您可以在Apache配置文件中设置服务器别名。你可能有这样的事情:
ServerName primarydomain.com
DocumentRoot /var/www/html/mysite/
<Directory "/var/www/html/mysite/">
AllowOverride All
</Directory>
将其更改为:
ServerName primarydomain.com
ServerAlias domain2.com
DocumentRoot /var/www/html/mysite/
<Directory "/var/www/html/mysite/">
AllowOverride All
</Directory>
答案 2 :(得分:0)
如果你可以使用mod_rewrite,这应该有效:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} (^.*?\.|^)?domain2\.com
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ([a-z0-9-]+)/? http://$1.primarydomain.com [R=301,NC,L]
如果没有,那么,我可能不得不把它留给比我聪明的人; - )