【问题标题】:The best way to do a 301 redirect with a delay of several seconds?延迟几秒钟进行 301 重定向的最佳方法是什么?
【发布时间】:2011-10-09 18:49:10
【问题描述】:

延迟几秒的 301 重定向的最佳方法是什么?我希望原始页面显示 5-10 秒,然后执行 301 重定向到另一个站点。我在 google 上的 PHP 中找到了很多解决方案,但我发现的唯一一个延迟的解决方案在重定向之前没有显示原始页面——只有一个空屏幕。

【问题讨论】:

    标签: php redirect delay


    【解决方案1】:

    如果你不是编码类型,但你想要一个用途广泛的免费工具,我支持 Quick Pagepost Redirect Plugin

    https://wordpress.org/plugins/quick-pagepost-redirect-plugin/

    In this case you want to use a meta redirect.

    此插件可以处理 Wordpress 重定向和元重定向(以防您需要延迟)

    它支持 301、302、307 和元重定向。 您也可以添加 URL 以避免 404。

    如果您正在升级网站并更改页面网址并希望保留 seo 排名,这是我朋友使用的工具(他是专业人士)

    这一切都将完成 - 无需编码。

    免责声明:我与这些人没有任何关系。

    【讨论】:

      【解决方案2】:

      您无法真正延迟执行真正的 301 重定向。 HTTP 是无状态的。对于“301 重定向”,如果你想让谷歌开心,这就是你想要的;客户端发送请求,服务器回复的状态码将为 301,作为回复的一部分,您将使用位置标头并告知新内容的位置。如果您没有所有这些,那么您就没有进行 301 重定向。

      对于另一个答案,您正在客户端进行元刷新,这是谷歌不喜欢的。

      这就是您执行 301 的方式,用户甚至根本看不到旧页面,并且可能根本不知道他们甚至被重定向了。

      $location="http://www.yoursite.com/newpage";
      header ('HTTP/1.1 301 Moved Permanently');
      header ('Location: '.$location);
      

      【讨论】:

      • 谢谢。在谷歌搜索解决方案后,我已经有点想了。我想我现在必须做一个延迟的 302,然后在大多数人都看到延迟屏幕的几周后切换到 301。
      【解决方案3】:
      You're being redirected
      <META HTTP-EQUIV="refresh" CONTENT="5;URL=the-other-page.html"> 
      

      或在 PHP 中

      header( 'refresh: 5; url=/the-other-page.html' );
      echo 'You\'re being redirected';
      

      不过,最好选择第二种解决方案

      【讨论】:

      • 别忘了添加click here if your page doesn't refresh,一些恐慌的人禁用刷新,然后就没有简单的方法知道他们应该去哪里。
      • @oliverwhite 您应该更喜欢服务器端重定向(示例#2)而不是客户端重定向。您应该添加一个 HTTP 状态代码(301 或 302)来确定这是永久重定向还是临时重定向。
      • 这些都不是 301 重定向。
      • @feeala:已编辑(“最好选择第二种解决方案”)
      • @profitphp:这有关系吗?除了隐藏代码(普通成员隐藏)之外,它的作用相同
      猜你喜欢
      • 2012-02-22
      • 2012-01-08
      • 2011-10-31
      • 2016-07-21
      • 2019-10-25
      • 1970-01-01
      • 2022-01-18
      • 2018-04-08
      • 2019-11-20
      相关资源
      最近更新 更多