画像ホットリンク保護の問題について
テストアドレスは http://127.0.0.2/test.html
<body><img src="./11.png"></body>
ログイン後にコピー
.htaccess
<br />RewriteEngine on<br />RewriteCond %{HTTP_REFERER} ^http://127.0.0.2/.*$ [NC]<br />RewriteRule .*\.(gif|jpg|png)$ http://127.0.0.2/22.jpg [R,NC]<br />
ログイン後にコピー
より当サイトの画像は全て22.jpgに誘導されていますが、上に書いてあるように画像が表示できません。
Chrome でテストした場合、test.html と 11.png に対して 1 回ずつ、合計 23 回のリクエストがありました。最初の 20 個のステータス コードはすべて 302 でした。以下のスクリーンショットに示すとおりです。
それはなぜですか?
------解決策---------無限ループのリダイレクト。
アンチホットリンクは、22.jpg にジャンプする必要がある自分のサイトのドメイン名であってはなりませんが、自分のサイトのドメイン名はジャンプする必要はありません。
これを次のように変更してみてください
<br />RewriteCond %{HTTP_REFERER} !^$ <br />RewriteCond %{HTTP_REFERER} !^http://127\.0\.0\.2/.*$ [NC] <br />RewriteRule \.(gif<br><font color='#FF8000'>------解决方案--------------------</font><br>jpg<br><font color='#FF8000'>------解决方案--------------------</font><br>png)$ http://127.0.0.2/22.jpg [R=301,L] <br />
ログイン後にコピー
-----解決策-------- - http://127.0.0.2/22.jpg は ^http://127.0.0.2/.*$ とも一致するため、無限ループします
無限ループしたくない場合は、
http://127.0.0.2/22.jpg [R,NC] [R=301,L] に変更します
を試してください-----解決策-------- --- -------- ホットリンクから保護する必要がある画像は、このディレクトリに配置され、すべての画像がリダイレクトされます。これは自分で遊んでいるわけではありません。