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

Sargas sargaskn at gmail.com
Wed Sep 4 00:25:29 UTC 2013


Приветствую.

Подскажите, пожалуйста как переписать апачевские реврайты

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
Судя по описанию выключать её не рекомендуется. А в какой ситуации может
понадобится её выключить? :)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20130904/e5e1e2c7/attachment.html>


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