try_files_bypass
Gena Makhomed
gmm на csdoc.com
Вт Авг 3 21:51:49 MSD 2010
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" ) )
--
Best regards,
Gena
Подробная информация о списке рассылки nginx-ru