URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID8
Нить номер: 550
[ Назад ]

Исходное сообщение
"Apache mod_vhost_alias & hotlink protect"

Отправлено cook , 27-Май-02 15:45 
Я использую mod_vhost_alias для построения виртуал доменов и требуется сделать защиту от хотлинка. чтобы определенные файлы могли тянуть только с рефером домена где лежать эти файлы.
при обычном построении виртуалов делалось вот так:
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://www.domain.com.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://domain.com.*$ [NC]
RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$|.*[Jj][Ss] http://www.google.com [R,L]
для каждого домена.

подскажите как сделать подобное общее правило для всех имеющихся доменов, плиз.


Содержание

Сообщения в этом обсуждении
"RE: Apache mod_vhost_alias & hotlink protect"
Отправлено uldus , 27-Май-02 17:08 
А если примерно так попоробовать (сам не пробовал, пишу идею на вскидку):

RewriteCond %{HTTP_REFERER} !%{HTTP_HOST} [NC]
RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$|.*[Jj][Ss] http://www.google.com [R,L]


"RE: Apache mod_vhost_alias & hotlink protect"
Отправлено cook , 27-Май-02 17:12 
>А если примерно так попоробовать (сам
>не пробовал, пишу идею на
>вскидку):
>
>RewriteCond %{HTTP_REFERER} !%{HTTP_HOST} [NC]
>RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$|.*[Jj][Ss] http://www.google.com [R,L]


Вот так пробовал, но так не пашет почему то..
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http://%{HTTP_HOST}.*$ [NC]
RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$|.*[Jj][Ss] http://www.google.com [R,L]


"RE: Apache mod_vhost_alias & hotlink protect"
Отправлено cook , 27-Май-02 17:30 
путем просмотра логов выяснилось что в правую часть не подставляется значение переменной
%{HTTP_HOST} ...


"RE: Apache mod_vhost_alias & hotlink protect"
Отправлено uldus , 27-Май-02 18:42 
>путем просмотра логов выяснилось что в
>правую часть не подставляется значение
>переменной >%{HTTP_HOST} ...

Как тебе идея вырезать hostname из реферера, а затем приделать к нему запрошенный путь и редиректнуть по результирующему значению. Если REFERER чужой, то и уйдет на чужой сайт за картинкой :-) Предлагаю такой выворот (только схема, не помню как переменные определять, посмотри в документации):

RewriteCond %{HTTP_REFERER} ^http://([^/]+)/$ [NC]
RewriteRule ^(.*)$ $1/$2 [L]