当前位置

将网站设置为503临时不可用状态

James Qi 在 2014年9月10日 - 15:05 提交
内容摘要:网站在做升级、迁移等工作的时候,往往需要暂停一段时间,这个时候标准的办法是为访问者(包括搜索引擎)给出503临时不可用状态,并加上可见的说明文字。 Drupal中有一个“维护模式&rdq......

  网站在做升级、迁移等工作的时候,往往需要暂停一段时间,这个时候标准的办法是为访问者(包括搜索引擎)给出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等各种平台系统。

  附:

自由标签: