スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

メンテナンス中の画面を表示させる方法

Webサイトにアクセスしたときに、メンテナンス中の画面を表示させる方法を調べたのでメモ。メンテナンス中の画面を出す条件を下記と想定します。

  • 1. ドキュメントルート以下へのアクセスをすべてリライト
  • 2. メンテナンス中の画面を表示
  • 3. 特定のIPアドレスからのアクセスのみ正常表示

htaccessで設定できるだろうと調べてみたところ、Apacheのバージョンによって設定方法が異なることがわかりました。

[Apache 2.2系]の場合

1. メンテナンス中の画面を作成(例えば maintenance.html)
2. 下記をhtaccessに記述し、ドキュメントルートにアップ

ErrorDocument 503 /maintenance.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !\.css$
  RewriteCond %{REQUEST_URI} !\.js$
  RewriteCond %{REQUEST_URI} !\.jpg$
  RewriteCond %{REQUEST_URI} !\.gif$
  RewriteCond %{REQUEST_URI} !\.png$
  RewriteCond %{REQUEST_URI} !\.swf$
  RewriteCond %{REMOTE_ADDR} !=192.168.0.1 #(管理者のIPアドレス)
  RewriteCond %{REQUEST_FILENAME} !maintenance.html
  RewriteRule ^.*$ /maintenance.html [R,L]
</IfModule>

[Apache 1.3系]の場合

1. メンテナンス中の画面を作成(例えば maintenance.html)
2. 503.phpを作成し、下記を記述

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

3. 下記をhtaccessに記述し、ドキュメントルートにアップ

ErrorDocument 503 /503.php

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !\.css$
  RewriteCond %{REQUEST_URI} !\.js$
  RewriteCond %{REQUEST_URI} !\.jpg$
  RewriteCond %{REQUEST_URI} !\.gif$
  RewriteCond %{REQUEST_URI} !\.png$
  RewriteCond %{REQUEST_URI} !\.swf$
  RewriteCond %{REMOTE_ADDR} !=192.168.0.1 #(管理者のIPアドレス)
  RewriteCond %{REQUEST_FILENAME} !503.php
  RewriteRule ^.*$ /503.php [R,L]
</IfModule>

メンテナンス中の画面に画像やスタイルシートを適用させる場合は、maintenanceなどのフォルダを作成して格納し、すべて絶対パスで指定すればうまく行くようです。

今回試した環境では、Apache 1.3系の方法でうまく行きました。また設定する機会があれば試してみよう。

下記のサイトを参考にさせていただきました。詳細は以下より。

新しい記事

ピックアップ

Related Posts Plugin for WordPress, Blogger...
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。