Eu recuei para usar o mod_rewrite. A regra a seguir só reescreve URLs sem um ponto ("."), Então /images/image.jpeg é deixado em paz:
RewriteRule ^/([^\.]+)$ /$1.html [L]
Meu httpd.conf usa a opção MultiViews para exibir arquivos HTML para URLs como o link . Isso funciona bem, a menos que existam diretórios com o mesmo nome - o Apache tentará servir o diretório.
Existe alguma maneira de garantir a precedência do blog.html através do blog /, ou melhor: posso fazer a negociação do conteúdo do processo do Apache de acordo com o MultiView, embora uma entidade correspondente (o diretório) esteja presente?
No nginx, posso fazer isso explicitamente:
try_files $uri $uri.html $uri/ =404;
Tags apache-2.2