我想为我的网站设置一个维护页面。
为此,我在运行的第一个脚本(MY_Controller)中检查数据库中的字段。如果是维护,我想将用户重定向到维护页面。这有效:
redirect("maintenance", 'location');
这是我的问题。我想将标题代码设置为503,以避免机器人索引维护页面而不是真实的维护页面。但每当我这样做时:
redirect("maintenance", 'location', 503);
维护页面未加载,网址不会更改...
有什么想法吗?
提前致谢!
答案 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');
?>