web-dev-qa-db-ja.com

ホットリンク保護をパスしてGoogle画像検索を許可するにはどうすればよいですか?

Google画像は、ホットリンク保護がオフになっている場合にのみ画像をインデックス化するように見えました。 [*]

とにかくホットリンク保護を使用します。なぜなら、人々が私の帯域幅を消費しているという考えが好きではないからです。このコードを使用して、画像がホットリンクされないようにします。

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain\.com$ [NC]
RewriteRule .*\.(jpg|jpeg|png|gif)$ - [F,NC,L]

ただし、Google画像検索でホットリンク保護をバイパスするには(Google画像検索で画像を表示したい)、次の行を追加するだけで十分です。

RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google\.com$ [NC]

私が疑問に思っているので:

  • 画像はwww.google.comからのみホットリンクされていますか?
  • google.it/google.co.ukなどはどうですか?

参考:on Google公式ガイドライン これに関する情報は見つかりませんでした。


[*]いくつかのテストを行ったため、ホットリンク保護によって結果に画像が表示されるのを防ぐと思われます。また、ホットリンク保護によって画像がGoogle画像検索に表示されないようです。

1
Marco Demaio

google.comgoogle.co.ukなどは異なるドメインであるため、1つのみを許可すると、他のドメインはブロックされます。

したがって、2つのオプションがあります。すべてのGoogleバリアント(および結果に画像が必要な場合はBingバリアント、および他の検索エンジン用)を条件として記述できますが、これは非常に非現実的です。

別のオプションは、外部Webサイトからサーバー側スクリプトに画像にアクセスしようとするすべてのトラフィックをリダイレクトすることです。そのスクリプトでは、リファラーを確認するためにさまざまなことを行うことができます(つまり、リファラーがURLの先頭にGoogleを含むことを確認するなど)。リファラーが許可されたドメインからのものである場合、ページは適切なヘッダー(例:header("Content-type: image/jpeg");)を使用してクライアントに画像を提供し、画像のコンテンツを読み取ります。

1
Marvin

これは機能しませんか? !^http(s)?://(www\.)?google\.*$/.*$