Htaccess anti-hotlinking

Protée

WRInaute occasionnel
Bonjour à tous,
j'ai un souci de fonctionnement sur mon htaccess.
Il est rédigé de manière à interdire à un nombre limité de sites la pratique du hotlinking et devrait, en théorie, afficher chez le contrevenant, une image amusante.
Mais voilà, si l'interdiction fonctionne bien ; l'image de substitution (nohotlink.jpg), elle, ne s'affiche pas. :|

Le site à protéger est hebergé chez OVH. Le htaccess emploie cette syntaxe :
Code:
RewriteEngine on
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?site-interdit1\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?site-interdit2\.com/ [NC,OR]
RewriteCond %{HTTP_REFERER} ^http://(.+\.)?site-interdit3\.fr/ [NC]
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

Voyez-vous d'où peut venir le problème ?
Merci. :)
 

jidébé

WRInaute discret
Bonjour,

Tu as créé une boucle, la redirection est de nouveau bloquée par ta règle, et ainsi de suite.........

Pour éviter ça, met une autre extension à ton image de substitution (php par exemple avec un fichier qui affiche l'image) ou alors met ton image de redirection dans un autre dossier et met dans celui-ci un htaccess avec juste ça:
Code:
RewriteEngine off

A+
Jean-Denis
 

Protée

WRInaute occasionnel
Bonjour jidébé,
ton analyse m'a permis de résoudre le problème. Ainsi, en réécrivant la dernière ligne ainsi, cela fonctionne :
Code:
RewriteRule .*\.(jpe?g|gif|png)$ /images/nohotlink.bmp [L]
Avec, ce code, je ne boucle plus...

Par contre, je ne suis pas certain d'avoir bien compris cela :
Pour éviter ça, met une autre extension à ton image de substitution (php par exemple avec un fichier qui affiche l'image)
J'ai testé avec une page html et il semble que cela ne fonctionne pas. J'avais lu le message de mise en garde suivant :
Warning: Do not use .htaccess to redirect image hotlinks to another HTML page or server that isn't your own (such as this html page). Hotlinked images can only be replaced by other images, not with an HTML page.
As-tu testé cette solution ?
Quel code proposes-tu dans le fichier qui affiche l'image ?
Code:
<img src="nohotlink.jpg" />
Simplement cela ?

En tout cas, merci Jean-Denis !
 

Discussions similaires

Haut