Я использую 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]
для каждого домена.подскажите как сделать подобное общее правило для всех имеющихся доменов, плиз.
А если примерно так попоробовать (сам не пробовал, пишу идею на вскидку):RewriteCond %{HTTP_REFERER} !%{HTTP_HOST} [NC]
RewriteRule .*[Jj][Pp][Gg]$|.*[Gg][Ii][Ff]$|.*[Jj][Ss] http://www.google.com [R,L]
>А если примерно так попоробовать (сам
>не пробовал, пишу идею на
>вскидку):
>
>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]
путем просмотра логов выяснилось что в правую часть не подставляется значение переменной
%{HTTP_HOST} ...
>путем просмотра логов выяснилось что в
>правую часть не подставляется значение
>переменной >%{HTTP_HOST} ...Как тебе идея вырезать hostname из реферера, а затем приделать к нему запрошенный путь и редиректнуть по результирующему значению. Если REFERER чужой, то и уйдет на чужой сайт за картинкой :-) Предлагаю такой выворот (только схема, не помню как переменные определять, посмотри в документации):
RewriteCond %{HTTP_REFERER} ^http://([^/]+)/$ [NC]
RewriteRule ^(.*)$ $1/$2 [L]