Как заставить nginx включать любой из индексных файлов, скрытых в URL-адресе? - PullRequest
0 голосов
/ 09 июля 2020

Итак, когда я перехожу на свой веб-сайт https://www.example.com/somefolder, есть индексный файл (например: index. php), и страница загружается нормально. Однако в адресной строке браузера отображается только «https://www.example.com/somefolder». Я знаю, что nginx обслуживает индекс . php файл, поскольку он указан в разделе индекса. Как сделать так, чтобы любой из индексных файлов всегда отображался, не заставляя удаленного клиента явно вручную вводить индексный файл на своей стороне?

1 Ответ

1 голос
/ 09 июля 2020

Я попытался сохранить как можно больше оригинального поведения, попробуйте следующее:

map $uri $maybe_slash {
    ~/$      '';
    default  '/';
}

server {
    ...
    location / {
        try_files $uri @check_index;
    }
    location @check_index {
        if ( -f $document_root$uri${maybe_slash}index.php ) { return 301 $uri${maybe_slash}index.php; }
        # if we also need to check for "index.html", uncomment next line
        # if ( -f $document_root$uri${maybe_slash}index.html ) { return 301 $uri${maybe_slash}index.html; }
        return 301 /index.php;
    }
    ...
}
...