Estoy tratando de escribir el "último" enlace caliente .htaccess ...
Puede encontrar muchos ejemplos / tutoriales / generadores en la red, pero muchos de ellos son incorrectos o están incompletos (o incluso ambos).
Estas son las características que estoy buscando:
- Debe bloquear el enlace activo para una lista de extensiones de archivo cuando HTTP_REFERER es un sitio extraño.
- Debe permitir el enlace activo para el dominio actual (duh) sin codificarlo en .htaccess.
- Para el dominio actual, debe funcionar bajo http y https.
- Para el dominio actual debe funcionar con www y sin www.
- Debe poder agregar dominios de excepciones a estas reglas (como nuestro amigo Google) y estos dominios deben funcionar bajo http y https y con www o sin www.
Esto es lo que he logrado hasta ahora:
<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>
Mis preguntas:
- ¿Cómo evitar codificar
mydomain.com
en el .htaccess? (Sería genial poder implementar este .htaccess en todos mis dominios sin tener que modificarlo para cada uno de ellos). - En mi RewriteRule, ¿
gif|jpe?g|png|zipx?
es equivalente a lagif|jpg|jpeg|png|zip|zipx
derecha? (Lo siento, todavía es nuevo en las expresiones regulares). - ¿Ves algo malo en mi .htaccess que desconozco?
Para el # 1 sé que es algo posible. Lo más cercano que encontré es este fragmento que elimina el www de la URL sin codificar el dominio. ¿Hay alguna manera de usar este método para mi pregunta # 1?
RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]
Actualizar:
Soy consciente de las soluciones que servirán una imagen con marca de agua en lugar de la imagen normal. Pero no estoy buscando este tipo de solución. Quiero una solución universal (servir 403 errores) que funcione para todo tipo de archivos binarios (zip, exe, iso, jpg, png, gif ...).