Apacheの設定でサーバーメンテナンス中にメッセージを表示

hata坊に言われたので、メンテナンス中に「しばらくお待ちください」の画面を表示するようにしてみた。

環境はLampp(Xampp for Linux)のApache

.htaccessでうまいことやる方法はこちらのサイトを参考に。

今回はapacheのconfファイルでやってみた。

VirtualHostで設定している場合の例は次のような感じ。VirtualHostは前の記事を参考に。

<VirtualHost *:80>
  DocumentRoot /opt/htdocs
  ServerName hoge.exbridge.jp
  ErrorDocument 403 /maintenance.html

  <Directory "/opt/htdocs">
    AllowOverride All
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1 192.168.0. 111.222.111.222
  </Directory>

</VirtualHost>

通常は青い所を追記すれば大丈夫だと思う。

ErrorDocumentで403のエラーになった場合に参照するファイルを指定。この場合は/opt/htdocs/maintenance.htmlを参照する。

Order Deny,Allow
Deny from all
Allow from 127.0.0.1 192.168.0. 111.222.111.222

この辺で特定のIPアドレスからのアクセスのみに制限する。詳しくはマニュアルで。設定が終わったらapacheを再読込。
# /etc/rc.d/init.d/lampp reload

ちなみにmaintenance.htmlの例は次のような感じ。

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="robots" content="noindex,nofollow"/>
    <title>サイト名</title>
  </head>
  <body>
    只今メンテナンス中です。
    今しばらくお待ちください...。
  </body>
</html>

検索エンジンに登録されないようにしとく。文字コードは適宜設定。