Discuz! X3 关闭站点时返回503状态码的方法
分类 网站技术/村民张先生 发布于 2020-02-19 17:04
默认情况下,后台设置“关闭站点”时,前台页面返回200状态码。可按以下说明返回503状态码,并返回一个 Retry-After 时间,告诉搜索引擎多长时间后重试。
打开 source/class/discuz/discuz_application.php 文件,查找:
showmessage($closedreason ? $closedreason : 'board_closed', NULL, array('adminemail' => $this->var['setting']['adminemail']), array('login' => 1));
在其前方增加:
header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After:10800'); //通知搜索引擎3小时后重试
其中 Retry-After 时间可自行修改,单位秒。
另外,如果需要在关闭站点时允许部分模块访问,可修改以下代码处,增加例外条件:
} elseif(in_array(CURSCRIPT, array('admin', 'member', 'api')) || defined('ALLOWGUEST') && ALLOWGUEST) {
/2020-06-08 21:30测试好像会导致整个网站页面空白。
/2020-06-13 18:27这个hack会导致小黑屋翻页失效,请订正。
/2020-08-11 19:17与以上修改无关。