web-dev-qa-db-fra.com

Comment puis-je autoriser hotlinking entre mes propres sites

J'ai plusieurs sites hébergés sur un serveur Bluehost. J'aimerais que mes sites puissent utiliser les images de chacun. En d'autres termes, je veux laisser mes sites hotlink images les uns des autres.

Il existe une option dans le fichier CPanel Bluehost pour activer la protection de hotlink. Le désactiver résout le problème. Cependant, je ne veux pas laisser mes sites ouverts à des hotlinking par d'autres personnes.

J'ai constaté que je suis censé ajouter une règle comme celle-ci au fichier .htaccess du site hotlinked:

RewriteCond %{HTTP_REFERER} !^http://example.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://example.com$      [NC]
RewriteCond %{HTTP_REFERER} !^https://example.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^https://example.com$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.example.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^http://www.example.com$      [NC]
RewriteCond %{HTTP_REFERER} !^https://www.example.com/.*$      [NC]
RewriteCond %{HTTP_REFERER} !^https://www.example.com$      [NC]
RewriteRule .*\.(jpg|jpeg|gif|png|bmp)$ - [F,NC]

Ce que cela est censé faire est de bloquer tous les hotlings sauf sur www.example.com. Cependant, cela ne fonctionne pas, il bloque tout, y compris des demandes de www.example.com. Je soupçonne que la valeur de% (http_regerer) est vide ou malformée. Y a-t-il un moyen de vérifier la valeur de http_regerer?

3
Paul Jones

Cela reviendra une réponse de 403 "interdite" chaque fois que l'une de ces extensions de fichiers est demandée à un site autre que le vôtre.

RewriteRule \.(gif|jpe?g?|png|mp3|mp4|wmv|flv|avi)$ - [NC,F,L]

Vous devez également ajouter la règle d'exception du site sous la règle de lien de lecture. Le fichier .Htacces fonctionne dans une mode en cascade, comme un fichier CSS. Donc, ces règles (example.com) dans votre exemple ci-dessus ont besoin d'aller sous la dernière règle.

Vous pouvez également utiliser cela sous la règle ci-dessus pour n'importe quel domaine que vous souhaitez que vous souhaitiez WHITELIST:

RewriteCond %{HTTP_REFERER} !^https://www.example.com/(m/)?view/ [NC]
1
Richard