nginx - Ocultar a extensão .php e redirecionar permanentemente as solicitações * .php para o URL limpo

2

Depois de muita pesquisa, consegui trabalhar URLs bonitos usando:

server {
    listen   80;
    server_name  www.url.com;
    rewrite ^/(.*) http://url.com/$1 permanent;
}

server {
    listen   80;
    server_name url.com;

    access_log /var/www/url.com/logs/access.log;
    error_log /var/www/url.com/logs/error.log;

    location / {

    root   /var/www/url.com/public/;
    index  index.html index.htm index.php;
    include /etc/nginx/mime.types;

    try_files $uri $uri/ @extensionless-php;

    }

    location @extensionless-php {
        rewrite ^(.*)$ $1.php last;
    }

    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass  127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME /var/www/url.com/public$fastcgi_script_name;
    }

    location /blog {
        root /var/www/url.com/public;
        index index.php;
        try_files $uri $uri/ /blog/index.php?$args;
    }

}

Parece funcionar. No entanto, para fins de SEO, gostaria de redirecionar permanentemente as solicitações de url.com/filename.php para o novo url.com/filename

Eu entendo que eu deveria estar usando rewrite ^/(.*)\.php$ http://url.com/$1 permanent; no bloco de localização .php, mas como faço isso sem causar um loop infinito?

    
por nonchalant 19.02.2013 / 05:18

0 respostas

Tags