Estou interessado em mudar do Apache / mod_php para o Nginx para alguns sites que não são do CMS que estou executando. Os sites em questão são arquivos HTML completamente estáticos ou PHP simples, mas a única coisa que eles têm em comum é que eu estou atualmente usando o mod_negotiation do Apache para atendê-los sem extensões de arquivo. Não estou preocupado com a negociação de conteúdo real; Estou usando isso para não usar extensões de arquivo em meus URLs.
Por exemplo, o arquivo em /info/contact.php
é acessado por meio de um URL de apenas /info/contact
O arquivo real é um arquivo .php
nesse local, mas não uso a extensão nos URLs. Isso me dá URLs um pouco menores e mais limpas, além de não expor o que é essencialmente um detalhe de implementação sem sentido para o usuário. No Apache, tudo o que isso significa é habilitar mod_negociação e adicionar + MultiViews às Opções do site. Em Nginx eu sei que vou reescrever de alguma forma, mas ser novo no Nginx, não sei exatamente como fazer isso.
Esses sites estão trabalhando no proxy do Nginx para o Apache, mas eu gostaria de tentar executá-los somente com o Nginx / fastcgi. Eles funcionam bem assim, desde que eu esteja usando as extensões, então o aspecto fastcgi está funcionando muito bem. Minha preocupação agora é apenas remover essas extensões.
É importante ter em mente que o nome do arquivo não é sempre na URL, no caso de subdiretórios. Isto é,
/foo/bar
deve procurar /foo/bar.php
ou /foo/bar/index.php
/foo/
deve procurar /foo/index.php
Existe uma maneira simples de conseguir isso com o Nginx ou devo ficar com o proxy para o Apache?