Nginx заставляет любой URL работать с косой чертой или без нее

Я хочу, чтобы любой каталог обслуживал либо index.html, либо index.php, независимо от того, была ли указана косая черта в конце или нет.

Прямо сейчас мои каталоги будут загружаться, когда будет указан косая черта в конце, но не без нее.

# Works
localhost/mydirectory/

# Does not work
localhost/mydirectory

Я просто хочу, чтобы это работало в любом случае. Вот мой блок сервера nginx:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /var/www;
    index index.php index.html index.htm;

    server_name localhost;

    try_files $uri $uri/ /index.php?$query_string;

    location ~ \.php$ {
        try_files $uri /index.php =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Ваша помощь приветствуется. Спасибо!


person Justin Breen    schedule 11.11.2017    source источник
comment
видеть это. это поможет вам. stackoverflow.com/questions/15555428/   -  person Manoj Jadhav    schedule 11.11.2017
comment
Кроме того, удалите $uri/, так как он вызывает перезапись.   -  person Richard Smith    schedule 11.11.2017
comment
@ManojJadhav Так уже настроен мой серверный блок, я не вижу большой разницы. Я думаю, проблема в том, что без косой черты в конце он думает, что mydirectory - это файл, а не каталог.   -  person Justin Breen    schedule 11.11.2017
comment
@JustinBreen, ты смог решить эту проблему?   -  person wphampton    schedule 20.09.2018