「 htaccess」検索結果
- <<
- 1
- >>
メンテナンス中画面を出す正しいApacheの設定[edit]
2016/01/31 【コード】
結論としては、正しいやり方は次の2ステップになります。
メンテ中画面を出すWebサーバーに/maintenance.htmlというファイルを作り、人間に対して表示するメッセージをHTMLで書く。
.htaccess(またはhttpd.conf)で、次のどちらかのように設定する。
最低限バージョン************************
ErrorDocument 503 /maintenance.html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteRule ^.*$ - [R=503,L]
</IfModule>
*******************************************
しっかりバージョン********************
ErrorDocument 503 /maintenance.html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} !=/maintenance.html
RewriteCond %{REMOTE_ADDR} !=192.168.0.4
RewriteCond %{REMOTE_ADDR} !=192.168.0.5
RewriteRule ^.*$ - [R=503,L]
</IfModule>
<IfModule mod_headers.c>
Header set Retry-After "Sun, 14 Jun 2009 6:00:00 GMT"
</IfModule>
*****************************************
/maintenance.htmlの部分には、メンテ中であることを示すHTMLのパスを指定します。
192.168.0.4や192.168.0.5の部分には、管理者のIPアドレスを書きます。管理者IPアドレスがさらにある場合は行をコピーして増やせばOKですし、わからない場合は必要ない場合は行を削除してしまいましょう。
Sun, 14 Jun 2009 06:00:00 GMTの部分には、メンテ終了予定時刻を指定します(メンテ終了までの秒数でも出せますが、終了時刻をRFC1123形式で示すほうが楽でしょう、GMTにする必要がありますが)。ただし、ここに指定する値は人間のユーザーには基本的に示されませんし、あくまでも参考データです。
これで、どのURLにアクセスしても、ブラウザに表示されるURLはそのままで、メンテ中を示すページが表示され、しかも、HTTPレスポンスコード503(過負荷/メンテで一時的に利用不可)が返るので、検索エンジンに対しても一時的なメンテだと理解され、メンテ画面がインデックスされることはありません。
また、管理者が使っている一部のIPアドレスからのアクセスに対してはメンテ中を表示せず通常の処理/表示をします。メンテということは必ず状態をチェックするはずですから、自分たちはいつもの状態で確認できる仕組みが必要になるわけですね。
- <<
- 1
- >>

