我想将一个域名 (old.com) 转发到位于另一台服务器上的另一个域名 (new.com)。问题是,这台新服务器已经托管了 2 个域名 (new.com 和 other.com),而重定向实际上会重定向到这台新服务器上的另一个域名 (other.com)。
在 old.com 的 DNS 上,我创建了一条从“www”到“new.com”的 CNAME 记录。
我还需要做什么才能让 old.com 重定向到 new.com 而不是 other.com?
干杯,
尼古拉斯。
答案1
您可以将 ServerAlias 添加到 new.com vhost 文件:http://httpd.apache.org/docs/2.2/mod/core.html#serveralias
我假设 other.com 是服务器选择的默认域。
编辑
你可以使用以下命令查看 apache 服务的虚拟主机列表以及默认虚拟主机
apachectl -S
如果默认值为“other.com”,则任何确定转到您的 CNAME 所指示的服务器的请求(如果在 new.com 虚拟主机中未正确配置)都将直接转到默认虚拟主机。
编辑2添加了重写代码。
一旦您确定 ServerAlias 设置正确,并且来自 'www.old.com' 的请求正在为来自 'new.com' 的文件提供服务,您就可以确保来自 www.old.com 的所有流量都得到正确的 301 重定向(简单地说:URL 在您的浏览器中发生变化,并且搜索引擎知道这是一个永久性的变化)在 vhost 文件(或 .htaccess)中使用以下代码(假设您已启用 mod_rewrite):
<IfModule mod_rewrite.c>
RewriteEngine On
# START DOMAIN REDIRECTS
RewriteCond %{HTTP_HOST} ^www\.old\.com$ [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://new.com/$1 [R=301,L]
# END DOMAIN REDIRECTS
</IfModule>