Problème avec .htaccess

Nouveau WRInaute
Bonjour bien.

J'ai donc un souci avec le fichier .htaccess, concernant le piratage d'images (si je ne suis pas dans la bonne rubrique, un modo voudra bien déplacer le sujet).

Voici les lignes en question.

Code:
RewriteEngine On

RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?pmcr.fr(/.*)?$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?astro.pmcr.fr(/)? [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?photo.pmcr.fr(/)? [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?leslibraires.fr(/)? [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?placedeslibraires.fr.fr(/)? [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?dilicom.net(/)? [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?amazon.fr(/)? [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com(/)? [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yahoo.com(/)? [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?bing.com(/)? [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?facebook.com(/)? [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?pinterest.com(/)? [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?twitter.com(/)? [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*(googlebot-image|google-favicon|mediapartners-googlegooglebot).*$ [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*slurp.*$ [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*bingbot.*$ [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*facebookexternalhit.*$ [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*pinterestbot.*$ [NC]
RewriteCond %{HTTP_USER_AGENT} !^.*twitterbot.*$ [NC]
RewriteRule \.(gif|jpg|png)$ https://pmcr.fr/images-al/subs.jpeg [R,NC,L]

Ce code fonctionnait parfaitement. Maintenant, si je teste (avec 2 ou 3 autres sites qui sont à l'abandon mais auxquels j'ai accès via ftp), l'image que je suis censé avoir piraté s'affiche et l'image de remplacement... ne remplace plus rien.

Par exemple, si je mets dans index.html d'un des sites mentionnés ci-dessus ceci :
<img src="https://pmcr.fr/images/favoris.png">, c'est cette image qui s'affiche et non « pmcr.fr/images-al/subs.jpeg ».

Si vous avez une idée...
 
WRInaute impliqué
Probablement l'absence de référent (referer), puisque la première condition est que le référent ne soit pas vide. Pour des raisons de confidentialité, beaucoup de navigateurs ne transmettent plus le référent, ou du moins de façon limitée (voir l'en-tête pour la politique en matière de référent).

Sur le fond, je doute fort que ce genre de script ait une réelle utilité. Ce sont des emmerde à gérer et à maintenir pour un résultat douteux ; je ne crois pas avoir détecté de sites qui utilise les images stockées sur mes serveurs ; qui les copie, oui. Après je ne les ai pas cherchés non plus.
 
WRInaute accro
Probablement l'absence de référent (referer), puisque la première condition est que le référent ne soit pas vide. Pour des raisons de confidentialité, beaucoup de navigateurs ne transmettent plus le référent, ou du moins de façon limitée (voir l'en-tête pour la politique en matière de référent).

Sur le fond, je doute fort que ce genre de script ait une réelle utilité. Ce sont des emmerde à gérer et à maintenir pour un résultat douteux ; je ne crois pas avoir détecté de sites qui utilise les images stockées sur mes serveurs ; qui les copie, oui. Après je ne les ai pas cherchés non plus.
Tu serais surpris...ou alors tes images sont "pourries" pour ceux qui les utilisent
 
WRInaute impliqué
Tu serais surpris...
Je me demande ce que ça peut leur apporter en 2024 (et en fait même depuis une dizaine d'année) où la bande passante n'est généralement plus trop un soucis, et ceux pour qui c'est important passeront par un CDN…
Est-ce à dire qu'en supprimant la première condition, ça fonctionne ?
C'est à tester en tout cas. Mais attention, il pourrait y avoir des effets secondaires : des sites qui devraient pouvoir utiliser les images mais qui, n'envoyant pas de référent, se trouveront bloqués.
 
Nouveau WRInaute
C'est à tester en tout cas. Mais attention, il pourrait y avoir des effets secondaires : des sites qui devraient pouvoir utiliser les images mais qui, n'envoyant pas de référent, se trouveront bloqués.
Oui, j'y avais pensé... Y compris pour le site lui-même !

Bon, je vais laisser quimper tout ça. Puis ça allègera le .htaccess.

En tout cas, merci pour les infos

Cordialement.
 
WRInaute passionné
Tester le http et www n'est pas utile. De plus, le premier test "^$" va laisser passer tous les sites avec un referer vide (ça devient la mode). Je vire le test d'office. De plus dans les extensions, le "." doit être précédé d'un "\" pour échapper le caractère "."

Tout le premier bloc devrait pouvoir être remplacé par (je ne remets pas tous les noms...)
Code:
RewriteCond %{HTTP_REFERER} !pmcr\.fr    [NC]
RewriteCond %{HTTP_REFERER} !(leslibraires\.fr|placedeslibraires\.fr|dilicom\.net|...) [NC]
RewriteCond %{HTTP_USER_AGENT} !(googlebot|slurp|bingbot|facebook|pinterest|twitter) [NC]
RewriteRule \.(gif|jpg|png)$ https://pmcr.fr/images-al/subs.jpeg [R,NC,L]
En plus, ça doit être un peu plus rapide comme test (l'avantage des "ou | " au lieu des "and" implicites. (je me demande s'il ne maque pas un "or" au lieu...?)

Pour les robots "officiels", voici ma propre ligne de test (c'est plus complet):
Code:
RewriteCond %{HTTP_USER_AGENT} !(Google|bing(bot|preview)|Applebot|SirdataBot|adsbot|Feedfetcher|qwantify|DuckDuckGo|facebook|Yahoo|geo-crawl|Mediapartners|pinterest|twitter) [NC]

Mais comme le dit @emualliug , bloquer les sites d'une façon trop globale de nos jours, ce n'est pas génial.

Perso, je préfère tester en positif et faire des skips sur des règles de blocages.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut