【问题标题】:CodeIgniter redirect 503CodeIgniter 重定向 503
【发布时间】:2013-11-12 15:49:03
【问题描述】:

我想为我的网站设置维护页面。

为此,我在运行的第一个脚本 (MY_Controller) 中检查数据库中的一个字段。如果它正在维护,我想将用户重定向到维护页面。这有效:

redirect("maintenance", 'location');

这是我的问题。我想将标头代码设置为 503,以避免机器人索引维护页面而不是真实页面。但是每当我这样做时:

redirect("maintenance", 'location', 503);

维护页面没有加载,url没有改变......

有什么想法吗?

先谢谢了!

【问题讨论】:

    标签: codeigniter redirect seo maintenance http-status-code-503


    【解决方案1】:

    我认为您无法使用 CI 提供的 redirect() 函数设置 503 HTTP 状态。但是你可以设置301代码(临时重定向),这意味着搜索引擎会知道你的页面是临时重定向的,它不会索引维护页面。

    更多信息在这里:http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html

    【讨论】:

    • 其实 301 是“永久移动”状态。这意味着与我正在尝试做的完全相反。 302(默认)更好,但仍然...... 503是用于维护的代码,所以我为什么不使用它?
    • 好吧,我不确定是 301 还是 302,但无论如何:我认为在 redirection() 函数中设置 503 代码是不可能的。创建一个检查站点是否处于维护模式的钩子怎么样?如果它处于该模式,您只需将状态设置为 503,显示维护页面并完成脚本的执行。 ellislab.com/codeigniter%20/user-guide/general/hooks.html
    【解决方案2】:

    这是一个老问题,但也许有人偶然发现了这个问题。

    我使用 CI 的 redirect() 函数来显示维护页面并尝试使用 503 响应代码,因为这感觉是维护页面的正确方式。

    我在 stackoverflow 上找到了一个答案,它可以让您使用 307 代码进行重定向,但它仍会向浏览器返回代码 503。

    The trick是在视图文件中设置维护页面内容后的headers。 (不理想,但是,它返回 503 代码)

    <?php
        header('HTTP/1.1 503 Service Temporarily Unavailable');
        header('Status: 503 Service Temporarily Unavailable');
        header('Retry-After: 3600');
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-23
      • 2010-10-17
      相关资源
      最近更新 更多