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" variable
na sua diretivatry_files
- alterei os dois$uriindex.html
e$uriindex.php
para$uri/index.html
e$uri/index.php
Neste ponto, acredito que a configuração faz quase tudo que você deseja:
- Ir para
www.mysite.com/about/index.html
você está redirecionado parawww.mysite.com/about/
- Ir para
www.mysite.com/contact/index.html
você está redirecionado parawww.mysite.com/contact/
- Ir para
www.mysite.com/contact/send_email.php
nenhum 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:)