J'essaie d'écrire le .htaccess "ultime" anti liaison à chaud ...
Vous pouvez trouver de nombreux exemples / tutoriels / générateurs sur le net mais beaucoup d'entre eux sont faux ou incomplets (ou même les deux).
Ce sont les fonctionnalités que je recherche:
- Doit bloquer la liaison à chaud pour une liste d'extensions de fichiers lorsque HTTP_REFERER est un site étranger.
- Doit autoriser la liaison à chaud pour le domaine actuel (duh) sans le coder dans le .htaccess.
- Pour le domaine actuel, il doit fonctionner sous http et https.
- Pour le domaine actuel, il doit fonctionner avec www et sans www.
- Doit pouvoir ajouter des domaines d'exceptions à ces règles (comme notre ami Google) et ces domaines doivent fonctionner sous http et https et avec www ou sans www.
Voici ce que j'ai réalisé jusqu'à présent:
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?mydomain.com/.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com/.*$ [NC]
RewriteRule \.(gif|jpe?g|png|zipx?)$ - [NC,F]
</IfModule>
Mes questions:
- Comment éviter de coder
mydomain.com
en dur dans le .htaccess? (Ce serait formidable de pouvoir déployer ce .htaccess sur tous mes domaines sans avoir à le modifier pour chacun d'eux.) - Dans mon RewriteRule,
gif|jpe?g|png|zipx?
est équivalent àgif|jpg|jpeg|png|zip|zipx
vrai? (Désolé encore nouveau pour les expressions régulières.) - Voyez-vous quelque chose de mauvais dans mon .htaccess que je ne connais pas?
Pour # 1, je sais que c'est quelque peu possible. Le plus proche que j'ai trouvé est cet extrait qui supprime le www de l'URL sans coder en dur le domaine. Existe-t-il un moyen d'utiliser cette méthode pour ma question n ° 1?
RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]
Mise à jour:
Je connais des solutions qui serviront une image en filigrane au lieu de la normale. Mais je ne cherche pas ce genre de solution. Je veux une solution universelle (servir 403 erreurs) qui fonctionnera pour tout type de fichiers binaires (zip, exe, iso, jpg, png, gif ...).