- ベストアンサー
.htaccess の書き方について教えてください。
こんにちは、質問させてください。 webサイトを運営しており、.htaccessによるアクセス規制を検討しています。 下記のように複数のアクセス規制をしたい場合、どのように書けば良いでしょうか? ○特定IPアドレスからのアクセス ○プロキシ経由でのアクセス ○特定URLからのアクセス 過去ログ等を検索してみて、現在、以下のようなソースにしています。 ------------------------------------- #特定IPとプロキシ経由の拒否 order allow,deny allow from all deny from ***.***.**.*** order deny,allow deny from all allow from .jp allow from .net allow from .com #特定アドレスからのアクセス拒否 SetEnvIf Referer "http://sample.url.com" ref01 order Allow,Deny Allow from all Deny from env=ref01 ------------------------------------- プロキシ経由の場合、すべてを弾くのは難しいと思いますが… 何か他に良い書き方がありましたら、アドバイスをお願いします。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
envというのは、UNIXのユーティリティだそうです。環境変数のリストを出力したりするのに使われます。 詳しくはこちらを↓。 http://ja.wikipedia.org/wiki/Env 環境変数とはNO.1さんが書いたHTTP_CACHE_CONTROLなどのことです。 これも詳しくはこちらを↓。一番下に説明があります。 http://ja.wikipedia.org/wiki/%E7%92%B0%E5%A2%83%E5%A4%89%E6%95%B0 質問者さんの記述ですが、上記の書き方ですと例えば「***.***.**.***」にも「.jp .net .com」にも「http://sample.url.com」にも該当しない場合、どうなってしまうと思われますか? 恐らくサーバーも混乱するんじゃないかと思います。 実際上記内容の.htaccessを試してみましたら、Internal Server Errorになりました。 ひとつの階層でorderingの内容はひとつだけではないかと思います。 order allow,denyかorder deny,allowかまずどちらかに決めることだと思います。 この場合はorder allow,denyにするのがいいのではと個人的に思います。 こんな感じで…。 #ここから SetEnvIf Referer "http://sample.url.com" ref01 order allow,deny allow from all deny from env=ref01 deny from ***.***.**.*** #ここまで 「.jp .net .com」は通ります。 あとは拒否したいホスト、IPをdeny fromとして書き足していけばよいのではと思います。環境変数の場合はSetEnvIfで。 プロキシについては多種多様ありますし、きりがないと思います。取りあえず海外のホストを弾くなどでしょうか。もし海外在住の人が来られなくなってもいいのでしたら…。
その他の回答 (2)
- 6l1nxv3q
- ベストアンサー率100% (1/1)
NO.2です。すみません、ひとつ訂正します。 × 実際上記内容の.htaccessを試してみましたら、Internal Server Errorになりました。 ○ 実際上記内容の.htaccessを試してみましたら、403 Forbiddenになりました。私は「,jp」に該当して、「***.***.**.***」と「http://sample.url.com」には該当していない設定です。
- eroermine
- ベストアンサー率18% (83/444)
以下のenvはプロキシ経由の特徴です。 しかし必要なのも弾いてしまいます。 2ちゃんねるのばあいは公開プロキシを常に調査してブラックリストを作ってますね。 HTTP_CACHE_CONTROL HTTP_CACHE_INFO HTTP_CLIENT_IP HTTP_FORWARDED HTTP_FROM HTTP_PROXY_CONNECTION HTTP_SP_HOST HTTP_VIA HTTP_XONNECTION HTTP_XROXY_CONNECTION HTTP_X_FORWARDED_FOR HTTP_X_LOCKING
補足
ご回答いただき有り難うございます。 envというのは、一体何なのでしょうか? プロキシを完全に弾くことは難しいと聞いたので、 ある程度弾くことが出来れば良いと考えています。 ソースの書き方は、上記で問題ないでしょうか? .htaccessを初めて設置するため、 初歩的な質問ばかりで、申し訳ないです。 補足・アドバイス等頂けましたら幸いです。
お礼
ご回答いただきありがとうございます。 返信が遅くなってしまってすみません。 最初のソースのままで確認をしたら、同じように403 Forbiddenと表示されました。 規制条件に該当しなければ閲覧できるというものではないのですね; プロキシを完全に遮断するのはやはり難しいので、 お薦めの通り、order allow,denyのみで規制をかけてみようと思います。 ソースもシンプルで、分かりやすいです。 詳しく教えていただいてありがとうございました。 大変勉強になりました。