Назад | Перейти на главную страницу

Nginx разрешает только окончания каталогов, без index.html или index.php

Работаем над настройкой сервера nginx. Я хочу добавить какой-то location блок, который разрешил бы только родительскую папку index.html или index.php быть обслуженным, но перенаправит index.html или index.php самих себя.

Я также надеюсь, что server записи будут перенаправлять папки, заканчивающиеся косой чертой, в версию без косой черты.

Например:

http://www.example.com/about ---> good
http://www.example.com/about/ ---> redirects to http://www.example.com/about
http://www.example.com/about/index.html ---> redirects to http://www.example.com/about

Вот один из sites-available файлы, которые у меня есть, сокращены до MCVE, и вся дополнительная информация удалена.

server {
    listen 80;
    root /var/www/html;
    index index.php index.html index.htm;

    ssi on;

    server_name example.com;

        location ~ /\. { access_log off; log_not_found off; deny all; }
        location ~ ~$ { access_log off; log_not_found off; deny all; }

        location ~ \.php$ {
                try_files $uri =404;
                include fastcgi_params;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                fastcgi_intercept_errors on;
        }

}

Я предполагаю что-то вроде этих двух предметов:

location ~ / {
     try_files $uri(strip /) =404;
}

location ~ index.* {
     try_files $uri(strip *) =404;
}