我必须使用主机名称( mydomain.com )将当前IP( 123.123.123.123 )的内容redirect到新的IP( 234.234.234.234 ),同时使用.htaccess保持相同的主机名。 我怎样才能做到这一点?
如果您可以在.htaccess文件中使用RewriteRule ,则本身不能“redirect”,但可以将连接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标题,如果您select,您可以login。
警告 :在这个设置的一个可能的障碍是进入234.234.234.234的连接将发送一个“234.234.234.234”的Host头,这可能是好的,如果你的网站是该IP上唯一的一个,但是如果你的新的主机位置正在使用命名的虚拟主机,它可能会失败。
在这种情况下,最好的select是使用不同的DNS主机。 您应该能够将DNSlogging中的权威名称服务器设置为指向其他位置,或者您的新网站托pipe提供商可能会提供此服务,或者为了最大限度地控制您可以使用服务(例如Amazon)来控制自己的logging路线53 。
问题不在于你的重写,而是关于你的DNSconfiguration。
我自己的DNSconfiguration是这样的:
$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或任何后面即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文件。