Re: Отрицание в valid_referers
Валентин Бартенев
ne на vbart.ru
Пн Июл 9 18:45:03 UTC 2012
On Monday 09 July 2012 22:01:42 Sergey Kobzar wrote:
> On 07/09/12 20:43, Валентин Бартенев wrote:
> > On Monday 09 July 2012 20:50:58 Sergey Kobzar wrote:
> >> Необходимо сделать отрицание строки в valid_referers. Сейчас
> >> valid_referers выглядит так:
> >>
> >> valid_referers none blocked server_names ~(?!domain);
> >>
> >>
> >> Но если реферером выступает домен domain-test.com? то блок
> >>
> >> if ($invalid_referer) {
> >>
> >> rewrite ^ /block.php;
> >>
> >> }
> >>
> >> Не срабатывает.
> >>
> >> Что не так?
> >
> > domain-test.com присутствует в server_names или совпадает с одним из
> > регулярных выражений?
>
> Я неполно описал задание:
>
> Есть домен domain.com. Необходимо закрыть доступ, где реферером является
> domain<something>.tld или <something>domain.tld (tld может быть отличным
> от исходного). В server_names присутствует *.domain.com
>
> Т.е. изначально я предполагал регекспом выделить запросы, где не
> встречается domain в имени сервера...
>
> Надо бы его переписать, а то получается я полностью строку Referer
> проверяю, а не только server name....
>
У вас вообще она не правильная. Должно быть как-то так: ^((?!domain)[^/])*/
--
Валентин Бартенев
Подробная информация о списке рассылки nginx-ru