Nginx permite apenas terminações de diretório, sem index.html ou index.php

1

Trabalhando na configuração de um servidor nginx. Quero adicionar algum tipo de bloco location que permita apenas que a pasta pai de index.html ou index.php seja exibida, mas redirecione index.html ou index.php .

Também espero que as entradas server redirecionassem as pastas que terminam em uma barra para a versão sem barra.

Por exemplo:

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

Aqui está um dos arquivos sites-available que eu tenho, encurtado para ser um MCVE, e qualquer informação extra removida.

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;
        }

}

Meu palpite é algo como esses dois itens:

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

location ~ index.* {
     try_files $uri(strip *) =404;
}
    
por Rob Schwartz 24.07.2015 / 00:13

0 respostas