Experimente esta configuração:
server {
# Handle redirects to www.example.com
server_name example.com;
return 301 http://www.example.com$uri;
}
server {
listen 80; # Default listen port
server_name www.example.com;
root /home/example.com/public_html/;
index index.php index.html;
access_log /var/log/nginx/skpat77-access.log;
error_log /var/log/nginx/skpat77-error.log;
gzip on; # Turn on gZip
gzip_static on;
gzip_comp_level 9;
gzip_min_length 1400;
gzip_vary on;
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript;
# Add .php extension to list of files to go through before trying WP
try_files $uri $uri.php $uri/ /index.php?$args;
#error 500 502 503
error_page 500 502 503 /500x.html;
location = /500x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
if ($request_uri ~ (.*)\.php$) {
return 301 $1;
}
try_files $uri =404;
expires off;
fastcgi_read_timeout 900s;
fastcgi_index index.php;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9001;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location /blog/ {
index index.php index.html index.htm;
try_files $uri $uri.php $uri/ /blog/index.php;
}
}
No entanto, o problema com essa abordagem é que pode haver outros efeitos colaterais. Eu recomendo que você use os arquivos .php brutos com a extensão, ou implemente um sistema similar de URL amigável como no Wordpress em seus próprios arquivos PHP.
Ou melhor ainda, implemente seus próprios arquivos PHP no WP.