富山のホームページ製作会社・グリーク スタッフブログ - ブログ -
  1. グリークトップ
  2. まとめ
  3. ブログ

Webサイトでメンテナンス画面を表示する際の.htaccessの記述方法

こんにちわ。

プログラマの湊です。

 

今回はホームページでメンテナンス画面を表示する際の.htaccessの記述方法についてメモ書きです。

 

通常のメンテナンス画面の記載方法

.htaccessをルートディレクトリに設置し、下記の記載を致します。

.htaccess

ErrorDocument 503 /maintenance/

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/maintenance
  #RewriteCond %{REMOTE_ADDR} !=***.***.***.***
  RewriteRule ^.*$ - [L]
</IfModule>

<IfModule mod_headers.c>
  Header set Retry-After "Tue, 24 Jun 2014 0:00:00 GMT"
</IfModule>

 

「***.***.***.***」に自身のIPを記載してあげると、通常のサイトが見られるようになります。

/maintenance/index.htmlを設置し、エラー画面を作成してください。

 

それでもうまくいかない人は・・・

これは僕もはまってしまったのですが、

Apacheのバージョンによって実は503エラーコードが対応しておらず、500エラーになってしまう場合があるようです。

Apache 2.2 以前の場合、500番台エラーは対応していないとのこと・・・

 

そんなときは、一度phpを間に入れてあげて、header()にて503エラーレスポンスを返すように致しましょう。

php

<?php
header ('HTTP/1.0 503 Service Temporarily Unavailable');
include(dirname(__FILE__) . '/index.html');

.htaccess

ErrorDocument 503 /maintenance/

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance/index.php
RewriteRule ^.*$ /maintenance/index.php [L]
</IfModule>

<IfModule mod_headers.c>
Header set Retry-After "Tue, 24 Jun 2014 0:00:00 GMT"
</IfModule>

 

 

 

この記事を書いたスタッフ