Приветствую.
Большое спасибо! Все понял.
В моем случае работает в таком виде:
if ($request_uri ~ "^(.*/)index.php$"){return 301 $1;}
location / {
try_files $uri $uri/ /index.php?q=$request_uri;
}
location ~ \.php {
....
}
> Почитайте ещё раз данное сообщение:
>
> https://forum.nginx.org/read.php?21,232265,283930#msg-283930
>
> Проблема решается в nginx элементарнейшим образом:
>
> index index.php;
> if ($request_uri ~ "^(.*/)index.php$") { return 301 $1; }
>
> См.
> https://stackoverflow.com/questions/21687288/nginx-redirect-loop-remov
> e-index-php-from-url/21813759#21813759
>
> Смысл здесь в разнице между внешними и внутренними перенаправлениями.
> При
> использовании $uri (например, через location или rewrite), вы ловите
> внутреннее (служебное) перенаправление на /index.php при внешнем
> запросе на
> /, и выдаёте внешнее перенаправление опять на /, тогда как клиент и
> так уже
> запрашивал /. Для правильной работы нужно использовать не $uri, а
> $request_uri, и перенаправлять исключительно внешние запросы
> /index.php.
>
> http://nginx.org/r/$uri/ru
> http://nginx.org/r/$request_uri/ru
>
> К.
> http://cm.su/
>