さんまがおいしい季節だねー(´・ω・`)

.htaccess を使って特定の URL を 503 Service Temporarily Unavailable にする方法

CGI — タグ: , , — さくら @ 2009/05/07 19:10

さくらです♡こんばんわ☆彡

最近開発モードだからブログの更新も滞り気味だわ。なんで今日は簡単なエントリでお茶を濁すつもりよww

さて、ウェブアプリとか動かしてたら、バージョンアップとかメンテのために一時的にアプリ止める必要が出てくるわよね。そういうとき皆さんはどうしてるかしら?あまりユーザ数が多くなかったら深く気にせずに稼働中のままリプレースしちゃうのもアリかもしれないけど、できたらメンテが終わるまで止めといた方が無難よね。

今日はそんなときに使える、.htaccess を使って特定の URL を 503 Service Temporarily Unavailable にする方法を紹介するわね。

RewriteEngine on

まず基本形を紹介するわね。

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/mywebapl/
RewriteRule ^.* - [R=503]

この例では /mywebapi へのアクセスをすべて 503 にしてるわ。この設定は /mywebapl/ よりも上位の箇所でするのがおすすめよ。httpd.conf とか / の .htaccess で設定しろって意味ね。

/mywebapl/ の .htaccess で同じように設定することもできるんだけど、だいたいウェブアプリ置いてるディレクトリって .htaccess 置いてないかしら?その .htaccess の設定ミスったら面倒なことになりそうなのは想像できるわよね?だからよ。

そんなの関係ねぇな人のために、一応 /mywebapl/ の .htaccess で設定する場合の例も載せとくわね。

RewriteEngine on
RewriteRule ^.* - [R=503]

/mywebapl/ に置く場合は RewriteCond が要らないわ。(あっても問題ないけどね。)

Apache 1.3 の場合 【2009/5/9 追記】

RewriteRule の [R=503] って Apache 1.3 じゃ動かないのね。1.3 の場合、[R] フラグのステータスは 300 番台か 400 番台じゃないとだめみたい。なんで、同じ効果を得るには cgi を使ったりする必要があるみたいね。

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/mywebapl/
RewriteRule ^.* /503.cgi [R=503]

503.cgi の中身はこんな感じね。超手抜きな感じだけどwww

#!/bin/sh

echo 'Content-Type: text/html'
echo 'Status: 503 Service Temporarily Unavailable'
echo
echo '<html><head><title>503 Service Temporarily Unavailable</title></head>'
echo '<body><h1>503 Service Temporarily Unavailable</h1></body></html>'

動作確認しつつ 503

メンテ中のアクセスを全部 503 にしちゃうと、自分でもちゃんと動いてんのか確認できないわよね。リプレースするだけの作業なら動作確認できなくてもいい場合もあるけど、普通これだとダメダメだわwww

そういうときは自分だけアクセスできるように RewriteCond を足せばいいと思うわよ。

RewriteEngine on
RewriteCond %{REMOTE_ADDR} !192.0.2.1
RewriteCond %{REQUEST_URI} ^/mywebapl/
RewriteRule ^.* - [R=503]

この例では REMOTE_ADDR を使って、クライアントの IP アドレスによる制限をかけてるの。自分の IP アドレスが 192.0.2.1 ね。

こうすると、192.0.2.1 からは普通にアクセスできて、192.0.2.1 以外からのアクセスは 503 になるわ。もっと複雑な除外判定が必要なら自分で考えてね。

ちなみに 192.0.2.0/24 はテスト用アドレスで、IP アドレスを例示するときとかに使えるわよ。興味がある人は RFC 3330 – Special-Use IPv4 Addresses を見てね。

さくら

3件のコメント »

  1. 債権取り立て手段。強制強要執行は誰でも勝手にできるものではない。貸方の手で無許可で行えば、それはドロボウになる。
    動産差押えも、不動産差し押えも、司法の場の遂行官じゃないとできない。督責状を差し出したり、ダイレクトにお邪魔しても売掛金を支払ってもらえない。

    コメント by ティーアンドエス — 2017 年 5 月 11 日 @ 20:43
  2. 熊本県のエラーコイン買取のなるほど理由。かたまり収集の輔翼をします。

    コメント by 熊本県のエラーコイン買取なら — 2017 年 6 月 17 日 @ 07:13
  3. Trên đây là 2 cách trị mụn mình đã thử, các bạn dùng thuốc j cũng
    đừng nên kì vọng quá nhiều vì thuốc còn tùy cơ địa,
    nhưng nên tìm hiểu kỹ tác dụng phụ.

    コメント by cách trị mụn nhỏ li ti — 2017 年 6 月 21 日 @ 02:00

この投稿へのコメントの RSS フィード。 TrackBack URI

コメントする

Copyright © 2017 さくらたんどっとびーず | powered by WordPress with Barecity