Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: access module и rewrite
- To: nginx-ru@xxxxxxxxx
- Subject: Re: access module и rewrite
- From: Sergey Shepelev <temotor@xxxxxxxxx>
- Date: Thu, 25 Jun 2009 00:26:53 +0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=dJ87TybhRkFQsKfc+1vDrGkhrCgtuUNRpNEgLT0fCAQ=; b=o8l63z1n4wuVtzoQ3TR3XPcHRNLv2we478tdJh3idfEfpaAOxuPAyGmarrA+jv5N/e Y1zhkjPO4XKo4xHbLUsG39x3edh+GMMlssnWOQpk8snBFj/s4ep25sba5r7TeLoIxIag u6U3k5YixbZilPgtSfFp6OWnj/rCHduDozGlI=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=euLcsWoBEVvXT1CmaCipSa0/kWlfFj17s687l167DnY0XY//dbQPnRtVbBgAsNVYXr 0YVPUhaBrLosl12T0onRWpgmDJKUPzkpTHjzTiXEaGzeqtJ6xtb6WNHiDsaDNyekyQXt eyxIzlSYwk83NJAbQKbST3l2D0B56ikFU3U10=
- In-reply-to: <4A4260A7.7000100@xxxxxxxxx>
- References: <4A4252AE.4090604@xxxxxxxxx> <2d8fb9950906240931v6617786w8b4763fcd314e05a@xxxxxxxxxxxxxx> <4A4260A7.7000100@xxxxxxxxx>
2009/6/24 Konstantin Belov <belov1985@xxxxxxxxx>:
> Sergey Shepelev wrote:
>>
>> 2009/6/24 Konstantin Belov <belov1985@xxxxxxxxx>:
>>
>>>
>>> Конструкция:
>>>
>>> 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 не поймает
|