【问题标题】:php 301 redirecting to the wrong linkphp 301 重定向到错误的链接
【发布时间】:2020-10-01 17:36:20
【问题描述】:

我正在尝试编写 301 重定向并使用以下代码:

<?php header("Location: http://www.google.com/", true, 301); ?>

这是为了测试重定向是否有效,以及何时将其更改为最终的结束链接。但是,即使在更改之后,它仍然会重定向到 Google。

我尝试使用不同的浏览器清除浏览器缓存,并重新启动了我正在使用它的计算机以及运行代码的服务器。

我还能做些什么来清除旧的重定向?

【问题讨论】:

  • 1.您的代码不完整。 http://www.google.com/", true, 301); ?&gt; 已“损坏”并且缺少第一个符号。 2. 请粘贴完整的可重现示例。
  • @ArnisJuraga 代码是正确的——只是在编辑器中的格式不正确。它也是完整的——这就是解释问题所需要的全部内容。
  • 然后在下面查看我的答案。它是两个之一 - 尝试使用额外的 url 参数以避免浏览器缓存,或仔细检查 php 代码以获取正确的标头重定向。或者介于两者之间。 PHP 代码是正确的,您无法“修复”未损坏的内容。
  • @DZFlame 这很可能与浏览器缓存有关。 301 告诉你的浏览器这是一个永久重定向,所以它已经缓存了它,直到另有通知。之前在 StackOverflow 上已对此进行了询问和回答,请查看这些内容。另外,将来使用302 进行测试! 302 重定向是临时的。
  • 这能回答你的问题吗? Cannot remove 301 redirect

标签: php redirect


【解决方案1】:

为避免缓存重定向,请尝试使用新的 url 参数打开同一页面。 如果您的测试页面有地址https://www.example.com/rtest.php,测试重定向 - 每次尝试打开地址:

https://www.example.com/rtest.php?a
https://www.example.com/rtest.php?b
https://www.example.com/rtest.php?c...

等等。这不包括浏览器缓存的重定向,并且每次都会再次检查服务器!

但请记住 - PHP 代码即使在第一个“标题”集之后也会执行。你必须在正确的一个之后退出或die

<?php 
header('Location: https://www.google.com', true, 301);
header('Location: https://www.bing.com', true, 301); ?>

将被重定向到https://www.bing.com,因为这是代码中的最后一个标头。

如果您有多个重定向,则只有最后一个有效。

在确切的一个之后设置“死”或“退出”。

<?php 
header('Location: https://www.google.com', true, 301);
exit; 
header('Location: https://www.bing.com', true, 301); ?>

此示例将重定向到 Google。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-23
    • 1970-01-01
    相关资源
    最近更新 更多