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

dimademin nginx-forum на forum.nginx.org
Вс Апр 28 09:57:16 UTC 2019


Движок там MODx, связка nginx + php-fpm, схематично конфиг такой

location / {
    try_files $uri $uri/ @rewrite;
}
location @rewrite {
    rewrite ^/(.*)$ /index.php?q=$1;
}
location ~ \.php {
    ......
    тут настроено кэширование отдельных страниц сайта
}
ну и дальше там еще второстепенные location, статика, закрытые урлы и пр.

обычные урлы разделов, товаров и какие-то доп. типа урл на сортировки
выглядят примерно так
http://dom.com/cat1/
http://dom.com/tovar_blabla/
http://dom.com/tovar_blabla/?color=red

С приведенным куском конфига все работает. СЕОшники возжелали склеить корень
"/" и "/index.php", то есть что-бы:
http://dom.com/index.php редиректило(301) на http://dom.com/

Уже не первый день экспериментирую, перепробовал кучу всего и подозреваю что
силами только nginx, это может не получится, как раз по причине
использования php-fpm. Все попытки это в конфиге nginx приводят к рекурсии.


На виртуалке поднял аналогичный конфиг только nginx + apache, через htaccess
это делается без проблем:

RewriteBase /
RewriteCond /index.php [NC]
RewriteRule ^(.*)index\.php$ $1 [R=301,L]

Видимо конкретно в моем случае, в роли htaccess, должен выступить скрипт, то
есть этот рерайт наверное нужно делать там.
Ну у меня просто идеи уже кончились и свои и не свои, может вы свежим
взглядом что-нить подскажете :)

Вот как-то так, вроде ничего не забыл.
Спасибо

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



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