![尽管服务器 nslookup 显示的是新 IP,但代码仍在使用旧 IP](https://linux22.com/image/1084738/%E5%B0%BD%E7%AE%A1%E6%9C%8D%E5%8A%A1%E5%99%A8%20nslookup%20%E6%98%BE%E7%A4%BA%E7%9A%84%E6%98%AF%E6%96%B0%20IP%EF%BC%8C%E4%BD%86%E4%BB%A3%E7%A0%81%E4%BB%8D%E5%9C%A8%E4%BD%BF%E7%94%A8%E6%97%A7%20IP.png)
我已将网站迁移到新服务器。当我在线检查 DNS 检查器时,似乎该域名已传播到全球。
当我在服务器上尝试时
nslookup www.example.com
我按预期获得了新 IP
当我运行 PHP 代码来回显域的 IP 时...
$ip = gethostbyname('www.example.com'); echo $ip;
我获得了新的 IP,
然而,当我使用网站时,部分 php 代码用于访问新创建的图像,但它仍在旧 IP 上使用网站的 .htaccess。我知道这一点,因为我有一个维护重定向,但在新 IP 上不存在,它一直在尝试执行此重定向。
对于为什么会发生这种情况有什么想法吗?
答案1
我知道这可能违反直觉,但(假设您使用的是 Chrome)请打开开发者工具。(Click the Hamburger->More Tools->Developer tools)
然后click the config gear
转到右上角check "disable cache while devtools is open"
。
Refresh the page with devtools open
看看这是否能帮你找到解决方案。这将强制浏览器每次从服务器提取新文件,并帮助你排除客户端的问题。刷新时 devtools 的网络部分也可能有帮助。我认为这是浏览器的缓存。
(不确定是否是这种情况,但我可以想象 Chrome 会解析并将 IP 存储在缓存中,并且只有当该 IP 没有该文件时才再次解析,或者使用类似的机制,以尽量减少不必要的查找。)