Qual versão do nginx você está usando?
Eu tentei sua configuração com o nginx 1.4.2 e detectei alguns erros de sintaxe:
-
invalid location modifier "^~*"na sua primeira diretivalocation- alterei para~ -
unknown "uriindex" variablena sua diretivatry_files- alterei os dois$uriindex.htmle$uriindex.phppara$uri/index.htmle$uri/index.php
Neste ponto, acredito que a configuração faz quase tudo que você deseja:
- Ir para
www.mysite.com/about/index.htmlvocê está redirecionado parawww.mysite.com/about/ - Ir para
www.mysite.com/contact/index.htmlvocê está redirecionado parawww.mysite.com/contact/ - Ir para
www.mysite.com/contact/send_email.phpnenhum redirecionamento ocorre
Agora, para que www.mysite.com/index.html redirecione para www.mysite.com/ , você precisará de outra diretiva "location" e regra de reescrita:
location ~ /index\.html$ {
rewrite ^/index\.html$ http://www.mysite.com permanent;
}
E quanto a www.mysite.com/contact/ a ser executado com PHP-FPM como www.mysite.com/contact/index.php script, você também precisará de uma diretiva de localização específica. A linha fastcgi_index index.php aqui é realmente importante:
location = /contact/ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5.sock
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
Espero que isso ajude:)