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

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

WBOY
リリース: 2016-06-13 12:04:33
オリジナル
1060 人が閲覧しました

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート