我想为我的网站设置一个维护页面。
为此,我在运行的第一个脚本 (MY_Controller) 中检查数据库中的字段。如果是维护,我想将用户重定向到维护页面。这有效:
redirect("maintenance", 'location');
这是我的问题。我想将标题代码设置为 503,以避免机器人索引维护页面而不是真实页面。但是每当我这样做时:
redirect("maintenance", 'location', 503);
维护页面不会加载,URL 不会更改。
CI 的 redirect()
函数来显示维护页面并尝试使用 503 响应代码,因为这感觉是维护页面的正确方式。
我在 stackoverflow 上找到了一个答案,它可以让您使用 307 代码重定向,但它仍然将代码 503 返回给浏览器。
诀窍是在视图文件中维护页面的内容之后设置标题。(不理想,但嘿,它返回 503 代码)
<?php
header('HTTP/1.1 503 Service Temporarily Unavailable');
header('Status: 503 Service Temporarily Unavailable');
header('Retry-After: 3600');
?>
您无法使用 CI 提供的 redirect() 函数设置 503 HTTP 状态。但是您可以设置 301 代码(临时重定向),这意味着搜索引擎将知道您的页面是临时重定向的,并且不会索引维护页面。
更多信息在这里: http://ellislab.com/codeigniter/user-guide/helpers/url_helper.html