Re: try_files вместо каскада рерайтов

Валентин Бартенев vbart на nginx.com
Ср Дек 7 21:36:19 UTC 2016


On Wednesday 07 December 2016 23:25:16 kvt на kvtsoftware.com wrote:
> Здравствуйте уважаемые господа.
> 
> Помогите выразить следующую конструкцию:
> 
>     if (!-f $request_filename){                                                                                                             
>         set $rule_0 1$rule_0;                                                                                                               
>     }                                                                                                                                       
>     if (!-d $request_filename){                                                                                                             
>         set $rule_0 2$rule_0;                                                                                                               
>     }                                                                                                                                       
>     if ($rule_0 = "21"){                                                                                                                    
>         rewrite ^/(.*)$ /index.php/$1 last;                                                                                                 
>     }                                                                                                                                       
> 
> с помощью try_files
> 
> Всю голову уже сломал, пробовал делать вот так:
> 
>     try_files $uri $uri/ /index.php$request_uri /index.php;                                                                               
> 
> все нормально, но на адреса вида /something-page/?param=value выдает 404-ю ошибку.
> простите если фигню спросил, не знаю куда обращаться. документацию читал вдоль и поперек.

Вы пытаетесь проверить наличие "/index.php$request_uri" в файловой системе?

Сомневаюсь, что директория /index.php/ вообще существует.

Видимо планировалось написать что-то такое:

   try_files $uri $uri/ /index.php$uri$is_args$args;

Но правильно на самом деле делать так, как изложено в документации
в примерах с Drupal/Joomla/Wordpress: http://nginx.org/r/try_files/ru

--
Валентин Бартенев


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