J'ai vu que Google Images semblait indexer mes images uniquement si la protection par lien direct était désactivée. [*]
J'utilise quand même une protection par lien hypertexte parce que je n'aime pas l'idée que des personnes consomment ma bande passante. J'utilise simplement ce code pour protéger mes images du lien hypertexte:
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]
Mais pour permettre à la recherche d'images Google de contourner ma protection par lien direct (je veux que Google Images recherche montre mes images), il suffirait d'ajouter ces lignes:
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google\.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google\.com$ [NC]
Parce que je me demande:
www.google.com
?google.it
/google.co.uk
, etc.?FYI: on directives officielles de Google Je n'ai pas trouvé d'informations à ce sujet.
[*] Je suppose que la protection des liens hypertextes empêche Google Images d'afficher des images dans ses résultats, car j'ai effectué quelques tests. Il semble que la protection des liens hypertexte empêche l'affichage de mes images dans la recherche Google Images.
google.com
, google.co.uk
, etc. sont des domaines différents. Par conséquent, si vous en autorisez seulement un, les autres seront bloqués.
Donc, vous avez deux options. Vous pouvez écrire toutes les variantes de Google (et de Bing si vous voulez aussi des images dans leurs résultats, ainsi que pour les autres moteurs de recherche) sous forme conditionnelle - mais cela n’est pas pratique.
Une autre option consiste à rediriger tout le trafic qui tente d'accéder aux images d'un site Web externe vers un script côté serveur. Dans ce script, vous pouvez alors effectuer différentes tâches pour vérifier le référant (c’est-à-dire que le référent inclut Google au début de l’URL, etc.). Si le référent provient d'un domaine autorisé, la page servira l'image au client en utilisant l'en-tête approprié (par exemple, header("Content-type: image/jpeg");
), puis en lisant le contenu de l'image.
Est-ce que ça ne marcherait pas? !^http(s)?://(www\.)?google\.*$/.*$