好的 - 我想我陷入了无法将旧网站重定向到新 IP 地址的困境

好的 - 我想我陷入了无法将旧网站重定向到新 IP 地址的困境

这几乎是滑稽的,但我被困在了这一点上。情况如下:

current host:  no root access, can really only work in .htaccess
current host:  site to be moved to new host is on a shared IP address
current host:  site has .htaccess redirecting all non-www traffic to www.

new host:  root access, WHM, all the knobs/dials
new host:  mod_userdir is disabled

好的。因此,在当前主机上我无法添加这样的 .htaccess 重定向:

RewriteRule ^(.*)$ http://1.2.3.4/~accountname/$1 [R=301,L]

因为 mod_userdir 在新主机上被禁用了——而且我被告知启用它并不是一件简单的事情。因此 IP 地址和帐户名将无法解析。

太好了 - 所以在新主机上让我们将网站放在专用 IP 地址上。不,这也行不通,因为 .htaccess 规则将所有流量重写为“www。”意味着它会中断 - 您会得到以下结果:

www.1.2.3.4 -- server DNS address could not be found.

我害怕关闭那个“www.”重写规则,因为它是几年前制定的,我不知道如果没有它会发生什么。

因此,目前我认为没有办法移动此网站并将旧网站重定向到新网站。我将 TTL 设置得很低,因此我不得不依靠全局 DNS 缓存在合理的时间内刷新(我可以忍受 24 小时)。

我头好痛。我是不是漏掉了什么,还是我应该按照计划移动网站,甚至不尝试从旧位置进行重定向?

答案1

我从以下地址复制了这个答案你的其它问题.htaccess,因为它实际上与您的新详细信息更相关。只需在当前主机上就可以完全完成。


我的示例使用www子域,但您可以根据需要进行调整。

在新服务器/网站上,确保它可以同时处理两个子域www.example.com以及您选择的第二个子域上的请求,而不会吓到最终用户。我通常选择www2.example.com

当您准备好切换时,请将 DNS 更改为指向新 IP,然后在旧服务器上重新配置网站,以便它对所有请求执行 HTTP 重定向www2.example.com。这应该不是要永久(301)重定向,请使用 302 或 307。

结果是,任何获得新 DNS 条目的客户端都会按原样转到新服务器。

任何具有缓存条目的客户端都会访问旧服务器,然后被重定向到www2始终指向新 IP 的服务器,因此无法缓存,然后他们获得新服务器。

有些事情可能会使这变得复杂。对于 SSL,证书将需要包含临时主机名。如果网站使用 cookie,我不确定它们是否仍然有效(或者它们不会传输)。您必须考虑不同名称可能对事物产生的所有影响,但根据我的经验,不会有很多人访问缓存的名称,只要您的 TTL 相当低,他们就会很快离开。

相关内容