1

特定のファイルと特定のディレクトリ内のファイルへのアクセスをブロックし、サーバー自体から含まれているか呼び出されている場合にのみアクセスできるようにしようとしています。

現在、「http://www.thedomain.com/.htaccess」に以下に示す htaccess ファイルがあり、「http://www.thedomain.com/specific_file.php」へのアクセスをブロックしています。

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http://(www.)?thedomain.com/.*$ [NC]
RewriteRule specific_file.php$ / [R=302,L]

また、「http://www.thedomain.com/thedir/.htaccess」にある以下の htaccess ファイルは、「http://www.thedomain.com/thedir/」内のすべてのファイルへのアクセスをブロックします。

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^http://(www.)?thedomain.com/.*$ [NC]
RewriteRule .(gif|jpg|png|css|js|php|inc)$ / [R=302,L]

リストされているドメイン名を変更せずに、これらの htaccess ファイルを複数のドメインで使用できるようにしたいと考えています。それは可能ですか?

余談ですが、このコードはまとめられているため、改善に関するアドバイスをいただければ幸いです。ありがとう

4

2 に答える 2

2

RewriteCond の最後の部分で絶対 URL ではなく相対 URL を使用するようにしてみてください。そうすれば、どのドメインでも機能するはずです。

于 2013-01-09T11:40:58.120 に答える
0

リファラーのチェックは安全な方法ではありません。この場合、特定のファイルをルート パスの上のレイヤーにアップロードすることをお勧めします。アップロードされたファイルにはあなただけがアクセスでき (直接アドレス指定で)、攻撃者はそれにアクセスできません。

于 2013-01-09T11:47:34.553 に答える