海外サイトの直リンクに対し、随時画像を入れ替えていましたが、キリがないので設定することにしました。
注意点として「http://の前には^」「ピリオド . の前に\」を入れます。「zbnr-hp\.com」の部分にはご自身のドメインを入れてください。
# NO direct link RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?zbnr-hp\.com [NC] RewriteRule \.(jpg|jpeg|png|gif|css|js|zip|pdf)$ - [F] RewriteCond %{HTTP_REFERER} !google. [NC] RewriteCond %{HTTP_REFERER} !search?q=cache [NC] RewriteCond %{HTTP_REFERER} !bing. [NC] RewriteCond %{HTTP_REFERER} !yahoo. [NC] RewriteCond %{HTTP_REFERER} !msn. [NC]
意味をごく簡単に説明すると、こういう意味になります。
- RewriteEngineをON
- 設定したサイトのみファイルへのアクセスを許可
- jpgなどのファイルへのアクセスを禁止
- GoogleやYahoo!などの検索エンジンのみアクセスを許可
末尾の意味はこんな感じ。
- [NC]→大文字・小文字を区別しない
- [F]→強制的にアクセス禁止「403 Forbidden」
- [L]→書き換えが行われたら終了
検索エンジンにもアクセスされたくない場合は、このように記述します。
# NO direct link SetEnvIf Referer "^https://ドメイン/" ref_ok Order Deny,Allow Deny from all Allow from env=ref_ok
たとえば、このサイトで直リンクされていましたが…
設定後、私の画像は消えました。

早く設定しておけば良かった
5ちゃんねるで、画像URLだけ貼られても大丈夫。
クリックすると、403エラー「アクセスが許可されていない(バーミッションで禁止されている)」になります。