Sto cercando di scrivere il .htaccess anti-hot link "definitivo" ...
Puoi trovare molti esempi / tutorial / generatori in rete, ma molti di essi sono errati o incompleti (o addirittura entrambi).
Queste sono le caratteristiche che sto cercando:
- È necessario bloccare il collegamento a caldo per un elenco di estensioni di file quando HTTP_REFERER è un sito esterno.
- Deve consentire il collegamento a caldo per il dominio corrente (duh) senza codificarlo in .htaccess.
- Per il dominio corrente deve funzionare con http e https.
- Per il dominio corrente deve funzionare con www e senza www.
- Deve essere in grado di aggiungere domini di eccezioni a queste regole (come il nostro amico Google) e questi domini devono funzionare in http e https e con www o senza www.
Questo è quello che ho raggiunto finora:
<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>
Le mie domande:
- Come evitare di hardcode
mydomain.com
in .htaccess? (Sarebbe bello poter distribuire questo .htaccess a tutti i miei domini senza doverlo modificare per ognuno di essi.) - Nel mio RewriteRule,
gif|jpe?g|png|zipx?
è equivalente agif|jpg|jpeg|png|zip|zipx
giusto? (Mi dispiace ancora nuovo per le espressioni regolari.) - Vedi qualcosa di brutto nel mio .htaccess di cui non sono a conoscenza?
Per il n. 1 so che è un po 'possibile. Il più vicino che ho trovato è questo frammento che rimuove il www dall'URL senza codificare il dominio. C'è un modo per utilizzare questo metodo per la mia domanda n. 1?
RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]
Aggiornare:
Sono a conoscenza di soluzioni che serviranno un'immagine con filigrana anziché quella normale. Ma non sto cercando questo tipo di soluzione. Voglio una soluzione universale (servire 403 errori) che funzionerà con tutti i tipi di file binari (zip, exe, iso, jpg, png, gif ...).