本番サーバでファイルの入れ替えやテスト等をする場合に一時的に「メンテナンス中です」のようなメッセージを表示させたいことがあるんだけど、普通に静的HTMLで書かれたサイトの場合は普通
- 「メンテナンス中」ですを書いたTMLファイルを用意する。
- .htaccessを使って自分以外のIPのアクセスをメンテ中のファイルにリダイレクトさせる。
で、よかったのだけれども、(こんな感じ↓でいいと思う)
corder deny,allow
deny from all
allow from 192.166.10.10 # ここからのアクセスを許可する
allow from bbtec.ne.jp # ドメインの指定アクセスを許可する
ErrorDocument 503 /maintenance/maintenance.html
ワードプレス上だとうまくいかない。
んで、ぐーぐる先生に聞いてみたらこちらの方法が紹介されていたのでやってみる。
「WordPressでメンテナンス中や工事中のページを表示する 」
概要を書くと
503用のディレクトリを用意する。
1. maintenance.htmlを作成する。
2. ※1のindex.phpを用意して、それからmaintenance.htmlを読ませる
3. ※2の.htaccessを用意する(もしくは追記する)
※1
※2
RewriteEngine On
RewriteRule ^503/ - [L]
RewriteCond %{REMOTE_ADDR} !=XXX.XXX.XXX.XXX
RewriteRule ^.*$ 503/index.php
XXX.XXX.XXX.XXXには自分のIPアドレスを入れる。
で、自分以外のアクセスは503ページを読みに行きます。
これでいいかな、と思ったんだけど、トップページ以外のアドレスに直リンすると普通に表示されてしまう。。。
小1時間悩んで.htaccessを書き換えたりしてみたけど、結局解決されず・・・。
という訳で、安易だと思いつつプラグインに頼ることにしました。^_^;
使ったのは「Maintenance Mode」っていうプラグイン。
使い方は簡単で、簡単に言うと、このプラグインを「実行」状態にすれば、他の人からは「メンテ中」という画面が表示されと言うもの。で、ダッシュボードにログインしていればそのPCからは通常と同じ表示されるというもの。
「メンテ中」の内容も自分で書けるし、メンテの残り時間も表示させられるし、なにより簡単でいい。最新版は英語表記でとっつきにくいかもしれないけれど、日本語用言語ファイルをコチラの方が配布していらっしゃるのでそれを使うといいかも。(でも簡単な英語なのでそもままでも十分わかると思う)