Re: Как удалить index.php из url

dimademin nginx-forum на forum.nginx.org
Пн Апр 29 08:49:28 UTC 2019


Приветствую.
Большое спасибо! Все понял. 
В моем случае работает в таком виде:

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/
>

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,232265,283970#msg-283970



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