サイトメンテナンス用にIPアドレスで振り分けてリダイレクト。
Apacheのモジュール「mod_rewrite」を.htaccessに記述して、アクセス元のIPアドレスによって条件分岐し、許可しないIPアドレスの場合にはHTTPステータスコード503でメンテナンス中を表示するページにリダイレクトさせる。
※ .htaccessのパーミッションは604にする。 (644を推奨しているレンタルサーバーもある。)
※ 「mod_rewrite」の詳細は前の記事参照。
ステータスが503の場合の表示用のファイル (今回は「maintenance.php」) を用意して指定したディレクトリに設置しておく。
.htaccessの記述
リクエストされたURLが「/maintenance.php」ではない場合に、リモートのIPアドレスが「XXX.XXX.XXX.XXX」に一致しなければ、ステータスコード503でリダイレクトする設定の記述。
(「XXX.XXX.XXX.XXX」以外のIPからのアクセスは503でリダイレクトされるので、指定してある「maintenance.php」がリクエストされたファイルとして表示される。)
ErrorDocument 503 /maintenance.php
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/maintenance\.php$
RewriteCond %{REMOTE_ADDR} !^XXX.XXX.XXX.XXX$
RewriteRule ^(.*)$ - [R=503,L]
<IfModule>
ErrorDocument : エラー時の処理を指定するディレクティブ。
第1引数にエラーのステータスコード、第2引数に該当コードのエラー発生時に表示するファイルのパスを指定。
<IfModule mod_rewrite.c> : モジュールの「mod_rewrite」が有効かどうかを確認するif文。
RewriteEngine on : 「mod_rewrite」の機能を有効にする。
RewriteCond : 「mod_rewrite」でURL書き換えを行う場合の条件を定義する条件分岐の構文。マッチした場合だけ、直後のRewriteRuleが処理される。
RewriteRule : 「mod_rewrite」でURL書き換えを実行する構文。第1引数にマッチした場合に第2引数を実行。
– : 何もしない(URLを書き換えない)。全てのアクセスをトップページに移動させる場合は「-」を「/」にする。
https://memo.ag2works.tokyo/post-350/
サイトメンテナンス用にIPアドレスで振り分けてリダイレクト。 | memo メモ [AG2WORKS]
<a href="https://memo.ag2works.tokyo/post-350/" target="_blank" rel="noopener">サイトメンテナンス用にIPアドレスで振り分けてリダイレクト。 | memo メモ [AG2WORKS]</a>
この記事へのコメント
コメントの書き込みはまだありません。