使用 .htaccess 将主机的 IP 地址重写为另一个 IP 地址

使用 .htaccess 将主机的 IP 地址重写为另一个 IP 地址

我必须使用 将主机名为 ( 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文件。

相关内容