我必须使用 将主机名为 ( mydomain.com
) 的 Web 服务器上的内容从当前 IP ( 123.123.123.123
) 重定向到新 IP ( 234.234.234.234
),同时保持主机名不变.htaccess
。我该怎么做?
答案1
如果您可以RewriteRule
在.htaccess
文件中使用,则您本身无法“重定向”,但您可以将与 123.123.123.123 的连接反向代理到 234.234.234.234,这样您只需维护单个网站。
RewriteEngine On
RewriteRule ^/(.*)$ http://234.234.234.234/$1 [P]
假设主机 123.123.123.123 可以直接连接到主机 234.234.234.234。使用“123.123.123.123”作为 DNS 名称 IP 的用户的连接将转到旧服务器,但 Apache 将代表他们向新服务器发出请求,并将该请求的结果返回给用户。
这样做的一个重要副作用是客户端 IP 会在混乱中丢失,因为主机 234.234.234.234 会将所有请求视为来自主机 123.123.123.123。但是,Apache 确实设置了一个X-Forwarded-For
您可以记录的标头(如果您选择)。
警告:此设置中的一个可能问题是,进入 234.234.234.234 的连接将发送一个Host
“234.234.234.234”的标头,如果您的网站是该 IP 上唯一的网站,那么这可能是没问题的,但如果您的新托管位置使用命名虚拟主机,它可能会失败。
在这种情况下,最好的选择是使用不同的 DNS 主机。您应该能够将 DNS 记录上的权威名称服务器设置为指向其他地方,您的新网络托管提供商可能会提供此服务,或者为了获得最大控制权,您可以使用以下服务自行控制您的记录亚马逊 53 号公路。
答案2
问题不在于您的重写规则,而在于您的 DNS 配置。
我自己的 DNS 配置如下:
$TTL 86400
@ IN SOA dnsxx.ovh.net. tech.ovh.net. (2011111300 86400 3600 3600000 86400)
IN NS dnsxx.ovh.net.
IN NS nsxx.ovh.net.
IN A 123.123.123.123
* IN CNAME papdevis.fr.
这意味着“如果您papdevis.fr
在 ie 后面输入 或 任何内容,www.papdevis.fr
或者olivier.papdevis.fr
转到地址为 的服务器123.123.123.123
。
123.123.123.123
例如,如果我将地址更改为新地址234.234.234.234
,这将起作用,并且只要您输入papdevis.fr
或任何其他内容(如之前所述),它就会转到234.234.234.234
。一切都将顺利进行,无需触碰任何.htaccess
文件。