Re[2]: Вложенныедирективыилиобъединениеусловий

Denis F. Latypoff denis at gostats.ru
Wed Apr 16 17:25:40 MSD 2008


Hello Larry,

Wednesday, April 16, 2008, 7:55:13 PM, you wrote:

> On Wednesday 16 April 2008 20:28, Andrey Ignatov wrote:
>> On Wed, Apr 16, 2008 at 11:57:17AM +0000, Larry Gingras wrote:
>> > Переписываю очень сложную и навороченную конфигурацию apache под nginx
>> > (для реализации связки nginx+apache).
>> > И вот например мне нужно тут в одной штуке нужно проверить несколько
>> > условий. В apache я просто писал несколько RewriteCond подряд. Тут в
>> > одном if несколько условий поставить нельзя. И, как оказалось, вложенные
>> > if не поддерживаются тоже. Так что же делать в таком случае?
>> > Вот один из примеров, который не знаю как расписать правильно:
>> > if ($request_uri ~* \.(jpg|gif|wmv|flv)$) {
>> >     if ($request_uri !~ ^/webmasters/) {
>> >             if($invalid_referer) {
>> >                     return 403;
>> >             }
>> >     }
>> > }
>>
>> Можно попробовать что-нибудь в таком духе:
>>
>> if ($request_uri ~* \.(jpg|gif|wmv|flv)$) {
>>       set $i  "a";
>> }
>>
>> if ($request_uri !~ ^/webmasters/) {
>>       set $i  "a$i"
>> }
>>
>> if ($invalid_referer) {
>>       set $i  "a$i"
>> }
>>
>> if ($i = "aaa") {
>>       return 403;
>> }
>>
>> Не красиво, но др. вариантов не знаю.
> Вот это я думаю наиболее изящное и хорошее решение
> Потому что мне тут предлагают разбивать всё на отдельные локейшены, а учитывая 
> что там помимо этого примера ещё мама не горюй таких вещей, то там ужас что 
> было бы. А с таким подходом очень много локейшенов удастся сэкономить.

либо красивый конфиг, либо скорость.
Вы выбрали первое.

-- 
Best regards,
 Denis                            mailto:denis at gostats.ru






More information about the nginx-ru mailing list