Bluehostサーバーでホストされているサイトがいくつかあります。私のサイトがお互いの画像を使用できるようにしたいと思っています。つまり、サイト間で画像をホットリンクできるようにしたいのです。
Bluehost cPanelには、ホットリンク保護をオフにするオプションがあります。オフにすると問題が解決します。ただし、他の人がホットリンクできるようにサイトを開いたままにしたくない。
ホットリンクサイトの.htaccessファイルに次のようなルールを追加することになっていることがわかりました。
RewriteCond %{HTTP_REFERER} !^http://example.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://example.com$ [NC]
RewriteCond %{HTTP_REFERER} !^https://example.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^https://example.com$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.example.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://www.example.com$ [NC]
RewriteCond %{HTTP_REFERER} !^https://www.example.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^https://www.example.com$ [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ - [F,NC]
これにより、www.example.comを除くすべてのホットリンクがブロックされます。ただし、機能せず、www.example.comからのリクエストを含むすべてをブロックします。 %(HTTP_REFERER)の値が空または不正であると思います。 HTTP_REFERERの値を確認する方法はありますか?
自分のサイト以外のサイトからこれらのファイル拡張子のいずれかがリクエストされると、403 "Forbidden"応答が返されます。
RewriteRule \.(gif|jpe?g?|png|mp3|mp4|wmv|flv|avi)$ - [NC,F,L]
また、ホットリンクルールの下にサイト例外ルールを追加する必要があります。 .htaccesファイルは、CSSファイルと同様にカスケード方式で機能します。したがって、上記の例の(example.com)ルールは、最後のルールの下に配置する必要があります。
ホワイトリストに登録したいドメインに対して、上記のルールの下でこれを使用することもできます。
RewriteCond %{HTTP_REFERER} !^https://www.example.com/(m/)?view/ [NC]