.htaccessで外部からの画像ファイルアクセスを拒否する
今回は、「.htaccessで特定のホストからのアクセスを拒否する(2)」の続きです。
ここでの話は、FreeBSDもCentOSも関係なく、apacheの設定です。
一般的に、リダイレクトやアクセス規制(制限や拒否など)を行うときに、.htaccessを使います。
その中でも、今回は、アクセス規制、それも外部からの画像ファイルのアクセスを拒否するための設定を紹介します。
外部からの画像ファイルのアクセスを拒否する
.htaccessで、外部からの画像ファイルのアクセスを拒否するためには、
以下の2点をテスト(SetEnvIf)する必要がありますね。
- 画像ファイルへのアクセスであること
- 自サイトからのアクセスでないこと
これをやるには、プルグラムでは、上記の条件の結果を and をとった結果に従えばよいのですが、.htaccessで 条件の and をとるのは、通常のプログラミングとちょっと違うので注意しましょう。
ここでは、,htaccessを使って www.exmple.com 以外からの画像へのアクセスを拒否する設定をしてみます。
ここでは、/var/www/html/.htaccessを編集してみます。
/var/www/html/.htaccessを編集すると、/var/www/html/配下のすべてのディレクトリが影響を受けます。
1
2
3
4
5
| SetEnvIf Request_URI "\.(jpg|png|gif)$" deny_ref
SetEnvIf Remote_Host "www\.example\.com" !deny_ref
Order Allow,Deny
Allow from all
Deny from env=deny_ref
|
- 1行目 : 画像(拡張子が、jpg,png,gifのいずれかで判断)へのアクセスかテストしています。
- 2行目 : アクセス元ホストが、www.exmple.comかテストしています。
ここでのポイントは、2行目ですね。
2行目で、アクセス元ホストが、www.exmple.com の場合、deny_refをリセットしていることです。
これでOK。
これって、案外、気づかなかったりするんですよね。 自分だけかもしれませんけど。
プログラマーの意識だと、SetEnvIfで列挙してみたり、Denyで列挙してみたくなるんですけど、1行づつ指定してあげると、ちゃんと、できるんですね。
一応、今回の記事は、備忘録の意味も込めて、記事にしておきます。
同様の問題で困っている方に何か参考になれば幸いです。
ご利用のブラウザは、広告ブロック(AdBlockなど) が適用となっていませんか?
このサイトでは、コンテンツの一部が非表示、あるいは、コメント、お問い合わせの投稿ができない、検索ができないことがあります。
関連記事 :
コメントを投稿 :