Re: access module и rewrite
Sergey Shepelev
temotor at gmail.com
Thu Jun 25 00:26:53 MSD 2009
2009/6/24 Konstantin Belov <belov1985 at gmail.com>:
> Sergey Shepelev wrote:
>>
>> 2009/6/24 Konstantin Belov <belov1985 at gmail.com>:
>>
>>>
>>> Конструкция:
>>>
>>> location /registration {
>>> deny all;
>>>
>>
>> - rewrite ^/ /url last;
>>
>>>
>>> }
>>>
>>>
>>> в итоге реврайт срабатывает и ограничение доступа не работает :(
>>> как быть?
>>>
>>>
>>>
>>
>> Вам что надо - реврайт или deny?
>>
>
> И реврайт, и deny.
> Я думал, что реврайт не будет выполняться, если есть deny :-)
>
>
ENOSENSE (в этом нет смысла)
Если вам нужно безусловно (deny all) запретить доступ, то нужно
выкинуть строку rewrite.
Если вам нужно безусловно (rewrite ^) реврайтить, то нужно выкинуть строку deny.
Закрыть доступ для конкретных адресов более эффективно через файрвол.
Задача:
- открыть для всех, кроме нескольких адресов и реврайтить /foo* на что-то?
Лучше всего - файрволом.
- закрыть для всех, кроме нескольких адресов и реврайтить /foo* на что-то?
Лучше всего - файрволом.
- на урлы /registration* выдавать 403?
location /registration { return 403; }
- на урлах /registration* редиректить на другой урл, где выдавать 403?
location /registration { rewrite ^ /403 redirect; }
location = /403 { return 403; }
У вас одна из этих или другая задача?
P.S.: обратите внимание на звездочку. Если у вас один конкретный урл
/registration, то его лучше обрабатывать со знаком равно. Если нужно
обрабатывать урлы, которые начинаются на что-то, то 'равно' не
подходит.
location = /registration { #поймает только ровно /registration,
/registration/user не поймает
More information about the nginx-ru
mailing list