Re: Использование try_files

Alexander Moskalenko alexander.moskalenko at gmail.com
Fri Sep 6 07:55:10 UTC 2013


location "^/(?<filename>.*)\.(php|html)$" {

    fastcgi_pass   ...;

    fastcgi_param  SCRIPT_FILENAME  /path/to/index.php;
    fastcgi_param  SCRIPT_NAME      /index.php;
    fastcgi_param  QUERY_STRING     key=$filename;

}

2013/9/6 Sargas <sargaskn at gmail.com>:
> Сейчас используется
>
> if (!-e $request_filename) {
>  rewrite ^/(.*)\.(php|html)$ /index.php?key=$1 break;
> }
>
> Хочется без if'а
>
>
>
> 4 сентября 2013 г., 3:25 пользователь Sargas <sargaskn at gmail.com> написал:
>
>> Приветствую.
>>
>> Подскажите, пожалуйста как переписать апачевские реврайты
>>
>> RewriteCond %{REQUEST_FILENAME} !-d
>> RewriteCond %{REQUEST_FILENAME} !-f
>> RewriteRule ^(.*)\.(php|html)$ /index.php?key=$1 [L,QSA]
>>
>>
>> на nginx/FastCGI с использованием try_files
>>
>> В документации (http://sysoev.ru/nginx/docs/faq.html) есть пример с
>> именованным локейшеном
>>
>> location / {
>>     try_files      $uri  $uri/  @drupal;
>> }
>>
>> location @drupal {
>>     fastcgi_pass   ...;
>>
>>     fastcgi_param  SCRIPT_FILENAME  /path/to/index.php;
>>     fastcgi_param  SCRIPT_NAME      /index.php;
>>     fastcgi_param  QUERY_STRING     q=$uri&$args;
>>
>>     ... прочие fastcgi_param
>> }
>>
>> Вопрос в том как в QUERY_STRING передать имя файла, но без его расширения
>> (php|html).
>>
>> Чтобы работали подобные ссылки
>> http://www.example.com/channels.php  <=>
>> http://www.example.com/index.php?key=channels
>>
>>
>>
>> И вопрос по директиве accept_mutex
>> http://nginx.org/ru/docs/ngx_core_module.html#accept_mutex
>> Судя по описанию выключать её не рекомендуется. А в какой ситуации может
>> понадобится её выключить? :)
>
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru at nginx.org
> http://mailman.nginx.org/mailman/listinfo/nginx-ru


Подробная информация о списке рассылки nginx-ru