CodeIgniter重定向503

时间:2013-11-01 12:33:23

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

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

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

redirect("maintenance", 'location');

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

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

维护页面未加载,网址不会更改...

有什么想法吗?

提前致谢!

2 个答案:

答案 0 :(得分:1)

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

此处有更多信息:http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html

答案 1 :(得分:1)

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

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

我在stackoverflow上找到了一个答案,让你用307代码重定向,但它仍然将代码503返回给浏览器。

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

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