Estamos gerando um site que consiste em apenas arquivos estáticos (usando Assemble ).
Tendo a extensão .html em URLs parece tão noventa, então geramos cada arquivo HTML estático em seu próprio diretório e chamamos de index.html. Por exemplo, o link da url está no arquivo /var/www/foo/bar/index.html
.
Isso funciona bem, mas há uma coisa pequena me importunando: agora há duas URLs possíveis para o mesmo recurso:
-
link (barra de URL)
-
link (index.html URL)
Por acidente, alguém pode se vincular ao index.html formulário da URL, o que é ruim para SEO e parece feio (lembre-se dos anos noventa?).
É possível no Nginx dar um erro 404 no URL index.html, mas veicular o URL da barra?
Eu tentei isso:
location ~ /index\.html$ {
return 404;
}
Mas parece que o Nginx faz uma reescrita interna do URL slash para o URL index.html e, em seguida, corresponde a esse local para que possamos obter um 404 mesmo no URL da barra.
Note que, para detectar erros, queremos que URLs index.html sejam um erro , e não apenas um redirecionamento para o URL da barra.