LINUX.ORG.RU
ФорумAdmin

Редирект в .htaccess

 


0

1

Есть сайт на поддомене:

subdomen.domen1.ru
Нужно установить правило, запрещающее хотлинки на картинки со всех сайтов, за исключением самого сайта domen1.ru (со всеми поддоменами) и с разрешённых сайтов domen2.ru и domen3.ru.

При запросе картинки хотлинком с «чужого» сайта - должна показываться картинка-заглушка image1.jpg

Единственное, что нахожу - это как закрыться от хотлинков на домене domen1.ru. Это выглядит так:

#При помощи этих правил мы заставляем сервер проверять откуда пришёл запрос на нашу фотку —
#если со страниц нашего сайта, он отдаёт её пользователю. Если с «вражеского» — 
#то показывает личерам какую-нибудь обидную картинку.
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?domen1\.ru/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Замените /images/nohotlink.jpg на название вашей картинки с лозунгом «личер идёт на…»
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

Как это оформить в .htaccess?

Единственное, что нахожу - это как закрыться от хотлинков на домене domen1.ru

Нет. Это правило звучит так: «если Referer не пустой И если он не равен domen1.ru или поддоменам на domen1.ru - тогда показываем заглушку»

Собственно тебе нужно добавить еще пару выражений RewriteCond для своих доменов, на которых ты хочешь разрешить хотлинки.

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Спасибо за ответ!

С учётом, что я совсем не понимаю в синтаксисе, предположу, что в итоге код должен выглядеть так:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?domen1\.ru/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?domen2\.ru/ [NC]
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?domen3\.ru/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Замените /images/nohotlink.jpg на название вашей картинки с лозунгом «личер идёт на…»
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
Поправьте, если я ошиблась.

Остался вопрос по основному (исходному синтаксису. Вот это выражение включает же в себя и домен, и все поддомены на нем?

http://(.+\.)?domen1\.ru/

manik207
() автор топика
Ответ на: Спасибо за ответ! от manik207

Вот это выражение включает же в себя и домен, и все поддомены на нем?

да, это регулярное выражение означает строка вида http://«любое количество символов больше одного с точкой на конце(встречающееся 0 или 1 раз) и затем domen.ru»/

Pinkbyte ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.