Webサイトをメンテナンスする際に、一般ユーザからは「メンテナンス中」画面を、管理者・開発者からは通常のサイト画面を出すようにするApacheの設定は以下な感じ。
"mod_rewrite"(モジュール)がLoadされていることが前提です。
ErrorDocument 503 /503.html RewriteEngine On RewriteCond %{REQUEST_URI} !^/503\.html RewriteCond %{REMOTE_ADDR} !^192\.168\.0 RewriteRule ^(.*)$ - [R=503,L]
上記例では、"192.168.0."で始まるプライベートIPアドレス全てをアクセス許可にしていますが、必要に応じてアクセス元の対象を絞るようにしてください。
メンテナンス画面は、503のHTTPコードを返すことで、サーチエンジンにインデクシングされることもないはず。イントラ内だったら、レスポンスコードはそんなに気にしなくても良いかも。
あと、メンテナンス画面となる"503.html"は事前に作っておきましょう。(Apacheのデフォルトでも良ければ作らなくても良いですが...)
関連リンク
別途、503.htmlは用意する。
${RAILS_ROOT}/tmp/stop.txtが存在する場合のみ、503のHTTPレスポンスコードと、メンテナンス画面を返す。
RailsAllowModRewrite on ErrorDocument 503 /503.html RewriteEngine on RewriteCond %{DOCUMENT_ROOT}/../tmp/stop.txt -f RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ - [R=503,L]
更に503用ファイルが存在したらという条件をつけると、mvコマンドだけで切り替えができて便利。RT @namikawa: "Apacheで特定ホスト以外からのアクセスをメンテナンス画面にする方法" http://bit.ly/cJN1DL
— Hirotomo Oi (@hiroohi) August 12, 2010
↑のアイデアは上記エントリが参考になるかと思います。
参考
- mod_rewrite - Apache HTTP Server Version 2.2
- http://httpd.apache.org/docs/2.2/rewrite/rewrite_intro.html
Apacheクックブック 第2版 ―Webサーバ管理者のためのレシピ集
- 作者: Ken Coar,Rich Bowen,笹井崇司
- 出版社/メーカー: オライリージャパン
- 発売日: 2008/09/26
- メディア: 大型本
- 購入: 6人 クリック: 144回
- この商品を含むブログ (32件) を見る