メンテナンス中画面を表示する

2016.11.22 (火)

基本形

503でやる。中身を見れるIPだけrewriteの条件文に入れる。という感じになってます。これ便利ですよ。

# /.htaccess
ErrorDocument 503 /mente.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/mente.html
  RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx
  RewriteRule ^.*$ - [R=503,L]
</IfModule>

mente.htmlに画像などを使う場合は画像も一緒にIP制限かけられてしまうのでBase64に変換するなどして一枚のファイルに収めるのが吉です。
https://lab.syncer.jp/Tool/Base64-encode/

いくつかのファイルだけアクセスできるようにする

例えば主力商品的なもののダウンロードなどメンテナンス中でもアクセスできるようにするには、こんな感じ。

RewriteCond %{REQUEST_URI} !(^/foo/)

/foo/以下にあるファイルについてはメンテナンス画面は表示されず通常どおりアクセスできます。

# /.htaccess
ErrorDocument 503 /mente.html

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_URI} !=/mente.html
  RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx
  RewriteCond %{REQUEST_URI} !(^/foo/)
  RewriteRule ^.*$ - [R=503,L]
</IfModule>

参考

http://qiita.com/cs_sonar/items/eea152085ec6ba3a7bab