Переписать для всех изображений И одного конкретного файла PHP - PullRequest
0 голосов
/ 01 сентября 2010

В качестве меры предосторожности против хотлинкинга я использовал следующее правило, чтобы перенаправлять людей с неправильным реферером на наш логотип вместо реального изображения:

    #Naughty hotlinkers
    RewriteCond %{REQUEST_FILENAME} .*jpg$|.*gif$|.*png$ [NC]
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !sitedomain\.com [NC]
    RewriteCond %{HTTP_REFERER} !google\. [NC]
    RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
    RewriteRule (.*) assets/hotlinked/logo.jpg [L]

Это хорошо работает для изображений.

Я нахожусь в процессе написания ужасного упаковочного кода, чтобы сохранить изображения, внедренные в контент нашего пользователя, а их src указывает на файл php, который использовался для фильтрации запросов и обслуживания наших изображений.Хотя новые изображения больше не будут обслуживаться таким образом, мы должны убедиться, что ранее загруженные изображения по-прежнему доступны по их старому адресу.

Хотя изображения по-прежнему должны быть доступны, этот файл должен быть защищен от хотлинкингаа также.

Я пробовал это:

    #Naughty hotlinkers
    RewriteCond %{REQUEST_FILENAME} .*jpg$|.*gif$|.*png$|.*gp2\.php.* [NC]
    RewriteCond %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !sitedomain\.com [NC]
    RewriteCond %{HTTP_REFERER} !google\. [NC]
    RewriteCond %{HTTP_REFERER} !search\?q=cache [NC]
    RewriteRule (.*) assets/hotlinked/logo.jpg [L]

Но без кубиков.

Файл, который я хочу защитить, используется в src изображения, например:

    http://sitedomain/legacy/gp2.php?p=long_stupid_string

Пожалуйста, расскажет мне гуру apache, что за глупость я здесь делаю неправильно?

Редактировать:

Я тестирую предотвращение горячих ссылок здесь:

(изображение) здесь

(php) и здесь

1 Ответ

0 голосов
/ 01 сентября 2010

Решение

    RewriteCond %{REQUEST_FILENAME} .*(jpg$|gif$|png$|gp2\.php.*) [NC]
...