网站在做升级、迁移等工作的时候,往往需要暂停一段时间,这个时候标准的办法是为访问者(包括搜索引擎)给出503临时不可用状态,并加上可见的说明文字。
Drupal中有一个“维护模式”,启用的时候该网站下属各种页面都会呈现出503状态,包括不存在的页面。
不过当需要维护一批网站或者一部分页面的时候,用Drupal的这个功能也不是很方便,在网上搜索找到一些解决办法,例如这篇文章《503 HTTP Status Code when Site Down》讲得比较有用。
我实际上建了一个/usr/local/apache2/htdocs/drupal7.mingluji.com/503.php文件,代码如下:
<?php header('HTTP/1.1 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 7200'); // in seconds print "Sorry, this page is temporarily unavailable."; print "<br />"; print "对不起, 本页面暂时不能访问。"; ?>
然后修改了/usr/local/apache2/htdocs/drupal7.mingluji.com/.htaccess文件,加入代码如下:
RewriteCond %{HTTP_HOST} ^(m\.|)hangye\.mingluji\.com$ RewriteCond %{REQUEST_URI} ^\/(anquan|abc|abcd)\/ RewriteRule .* 503.php
这样就实现了域名为hangye.mingluji.com、m.hangye.mingluji.com以及目录为anquan、abc、abcd的下属页面全部呈现503错误代码,并给出中英文文字提示。
那篇英文文章中说也可以把php代码嵌入到Drupal的模板文件中,不过就只用一个新建单独php文件以及修改.htaccess也很方便,也适用于MediaWiki等各种平台系统。
附:
- 查询工具:查询页面HTTP状态;
- 查看例子:503报错页面。
评论2
后台怎么设置啊?
后台怎么设置啊?Drupal 7后台在https://www
Drupal 7后台在https://www.example.com/admin/config/development/maintenance 里面勾选为“将站点置于维护模式”,提交保存配置就可以了👌