Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: try_files_bypass
On Tue, Aug 03, 2010 at 08:51:49PM +0300, Gena Makhomed wrote:
> On 03.08.2010 17:00, Igor Sysoev wrote:
>
> > В свете такого кошмара
> >
> > http://kuapp.com/2010/06/30/nginx-rewrite-rules-of-wordpress-3-0-permalinks-and-wp-super-cache.html
> >
> > есть идея внедрить директиву try_files_bypass или bypass_try_files
> > по аналогии с proxy_cache_bypass:
> >
> > try_files_bypass $query_string
> > $cookie_comment_author
> > ...
> > ;
> >
> > Только придётся делать поддержку выржаений, для вещей типа
> > "$request_method = POST"
> > "$http_cookie ~* comment_author_|wordpress|wp-postpass_"
> >
>
> вместо синтаксиса
>
> try_files_bypass $query_string
> "$request_method = POST"
> ...
> ;
>
> предлагаю сделать безымянные переменные с вычисляемым значением:
>
> try_files_bypass $query_string
> $( $request_method = POST )
> ...
> ;
>
> все что внутри $( ... ) - это допустимые варианты из if ( условие ).
> значение этой переменной: 1 для случая true или "" для случая false.
>
> плюс в том, что парсер всегда сможет правильно понять $( условие )
>
> $( $http_cookie ~* "id=([^;]+)(?:;|$)" )
>
> что для варианта синтаксиса "условие" будет очень затруднительно:
>
> " $http_cookie ~* "id=([^;]+)(?:;|$)" "
>
> и в будущем возможно будет расширение синтаксиса путем введения функций:
>
> $crc32( ... ), $md5( ... ), $sha1( ... )
>
> $and( ... , ... ), $or( ... , ... ), $not( ... )
>
> например:
>
> $and( $( $request_method = POST ), $( $server_protocol = "HTTP/1.0" ) )
Лисп, это, конечно, модно, но хотелось бы избежать.
--
Игорь Сысоев
http://sysoev.ru
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|