特定IPからのアクセス以外はメンテナンスページに飛ばす
Last-modified: Sun, 18 Dec 2016 17:39:27 JST (2914d)
Top > 特定IPからのアクセス以外はメンテナンスページに飛ばす
- サイトメンテナンスなどで、メンテナンスページに飛ばすリダイレクトを仕込むことがありますが、メンテナンスするIPからのアクセスはリダイレクトせず許可したい場合があります。
mod_rewiteでサクッと条件書けばいいかと思っていましたが、意外に苦戦したのでメモ。
特に、メンテナンスページに画像が含まれている場合、それも対象外にしないとリダイレクトループが発生します。
つまり、メンテナンスページを構成するリソースはすべてリダイレクト対象外にする。ということです。(よく忘れます・・)ErrorDocument 301 /mentenance.html #メンテナンスページ <IfModule mod_rewrite.c> RewriteEngine On #これが無いと、メンテナンスページに張られた画像が表示されない。最後の[NC]は大文字小文字を区別しないという意味。 RewriteCond %{REQUEST_URI} !^(.mente_logo.jpg)$ [NC] #メンテナンスページはリダイレクト対象から除外。 RewriteCond %{REQUEST_URI} !=/mentenance.html #特定のIPからのアクセスは許可 RewriteCond %{REMOTE_ADDR} !^192\.168\.0\.100$ #301を発生させる RewriteRule ^.*$ - [R=301,L] </IfModule>
参考にしたサイト
RewriteCond
メンテナンス中画面を出す正しい作法:503を返す
.htaccessで特定のIPアドレス以外からアクセスされたらリライトして表示する
Counter: 1017,
today: 1,
yesterday: 0
このページの参照回数は、1017です。