しばらく放置状態の"MovableTypeで構築したサイト"を、専門学校が冬休みの間に作り直そうと思い、とりあえず、『メンテナンス中』にしておくことにした。WPだと、メンテナンスモードというプラグインを使えば、何も悩む事はないんだけど、そういえばMTではどうなんだ?と、そもそもの疑問が浮かんだ。
恐らく、メンテナンス中にするプラグインは、MTにもあるんだろうけど、MTをやめて、WPで作り直そうと思っているので、これ以上MTに何かはしたくない。さらに、今ここでバックアップを取るのは、ちょっと面倒。
そこで、よく見かける「ただいまメンテナンス中です」って表示されるあれ。あれをやろう、と思いつく。で、index.htmlをメンテナンス中のページにしてしまえ、な~んて単純に考えたけど、ちょっとまった。それじゃあサブページが普通に見えるじゃん、と自分の浅はかさに自分でびっくり┐(´-`)┌
改めて、どうしなければならないかを考えた。私にとって重要なのは、次の2点のみ。
【1】MTでマルチサイト構築してるから、すべてのブログにアクセスできないようにしないといけない。
【2】バックアップを取る暇がないので、MTが生成しているページには一切手は触れずにいたい。
さっそく、「ウェブサイト、メンテナンス中」という単純なキーワードでググってみると、サイトのメンテ中は、503エラーを返すのがおすすめ、という情報にたどり着いた。
「.htaccess」になにかするんだなと思いながら、今度は、記述方法をググる。
記述についてはいくつか見つかったが、Apacheのバージョン?によって、いろいろルールがあるみたいだったので、ロリポサーバーにログインして、何か情報がないか確認。すると、エラーページの変更、というメニューが用意されていた。な~んだ悩む必要ないじゃん、と思い見てみたら、401、403、404、500のエラーページのみ自作ページへ変更可、というものだった。残念(ノ_-。)
でもってここからは、Apacheについて書いたページとか、.htaccessについて書いたページとかいろいろ読み進め、503を返すことの基本ルールをふわ~っと解釈(^▽^;)
そして、こうやればいい、というものを順番に試してみた。が、503エラーは返るものの、自作したHTMLの画像が表示されない状態までしかたどり着けなかった。
ちなみに、用意した自作エラーページは、ルート直下にメンテナンスフォルダを作成し、その中にHTMLと画像をFTPしてある状態。
改めて、記述したhtaccessファイルのどこがまずいのか、じーっと見つめる。そこには、サーバーにモジュールが組み込まれているかのチェック。指定したアドレスにアクセスがあったら、用意したメンテナンス中のページを表示させる指示。URLを変えず、レスポンスコードに503を返して終了、といった感じの事が書いてある、、、 みたい。
ひょっとして、画像を表示させる許可が必要なんじゃないか?
そこで、今度は画像を許可する記述を探し、見つかり次第試すを繰り返すも、全部だめ。もうこうなったら、自分なりの"表現"で書いてやる!と思い、いろいろ書いてみたら、なんと無事成功(^^)v
ちなみに、どんな感じかというと。。。
【ErrorDocument 503 /maintenance/index.html】から始まり、
【RewriteCond %{REQUEST_URI}】で、上記のページを指定。
【{REQUEST_FILENAME}】で、表示したい画像の拡張子を指定。
【 RewriteRule ^.*$ - [R=503,L]】 で503を返して終了。
一番悩んだのは、【{REQUEST_FILENAME}】以降の書き方。正規表現なんてしらないしさ(;^_^A
★今回参考にしたサイト一覧★
●.htaccessのRewriteCond、RewriteRule:超初心者向けメモ
http://web.tvbok.com/web/server/rewritecond_rewriterule.htm
●Webサイトのメンテナンス中画面を出す正しい作法と.htaccessの書き方
http://web-tan.forum.impressrd.jp/e/2009/06/16/5880
●mod_rewriteのインストール・設定 - RewriteRuleのサンプル
http://memorva.jp/memo/linux/mod_rewrite.php
●サイトメンテナンス時には、HTTP 503エラーを使う
http://www.suzukikenichi.com/blog/using-503-error-at-site-maintenance/
単純にウェブ作りますといっても、本当、奥が深い。いろいろな場面に出くわすと、毎回新鮮に楽しいo(*^▽^*)o~♪
0 件のコメント:
コメントを投稿