.htaccessRewriteEngine onRewriteCond %{HTTP_REFERER} ^ http://127.0"/> .htaccessRewriteEngine onRewriteCond %{HTTP_REFERER} ^ http://127.0">

ホームページ >バックエンド開発 >PHPチュートリアル >写真のホットリンク防止に関する質問

写真のホットリンク防止に関する質問

WBOY
WBOYオリジナル
2016-06-13 12:04:331053ブラウズ

画像ホットリンク保護の問題について
テストアドレスは 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] に変更します
を試してください-----解決策-------- --- --------
ホットリンクから保護する必要がある画像は、このディレクトリに配置され、すべての画像がリダイレクトされます。これは自分で遊んでいるわけではありません。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。