Я пытаюсь написать "окончательный" анти горячие ссылки .htaccess ...
Вы можете найти много примеров / учебных пособий / генераторов в сети, но многие из них неправильные или неполные (или даже оба).
Это функции, которые я ищу:
- Должен блокировать горячие ссылки для списка расширений файлов, когда HTTP_REFERER является сторонним сайтом.
- Необходимо разрешить горячие ссылки для текущего домена (duh), не кодируя его в .htaccess.
- Для текущего домена он должен работать под http и https.
- Для текущего домена он должен работать с www и без www.
- Должен быть в состоянии добавить домены исключений к этим правилам (как наш друг Google), и эти домены должны работать с http и https, а также с www или без www.
Это то, чего я достиг до сих пор:
<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>
Мои вопросы:
- Как избежать жесткого кода
mydomain.com
в .htaccess? (Было бы здорово иметь возможность развернуть этот .htaccess на всех моих доменах без необходимости изменять его для каждого из них.) - В моем RewriteRule
gif|jpe?g|png|zipx?
эквивалентноgif|jpg|jpeg|png|zip|zipx
право? (Извините, все еще новичок в регулярных выражениях.) - Видите ли вы что-нибудь плохое в моем .htaccess, о котором я не знаю?
Для # 1 я знаю, что это несколько возможно. Самый близкий я нашел этот фрагмент, который удаляет www из URL без жесткого кодирования домена. Есть ли способ использовать этот метод для моего вопроса № 1?
RewriteCond %{HTTP_HOST} ^www\.(.+)
RewriteCond %{HTTPS}s/%1 ^(on(s)|offs)/(.+)
RewriteRule ^ http%2://%3%{REQUEST_URI} [L,R=301]
Обновить:
Мне известны решения, которые будут служить изображением с водяным знаком вместо обычного. Но я не ищу такого решения. Я хочу универсальное решение (обслуживать 403 ошибки), которое будет работать для всех видов двоичных файлов (zip, exe, iso, jpg, png, gif ...).