Nginx reescreva: remova o .html da URL com argumentos

4

Como posso remover o .html de um URL com argumento?

por exemplo: link

para:

link

Eu tentei

    location / {
    index index.html index.php; 
            rewrite ^\.html(.*)$ $1 last;
            try_files $uri $uri/ @handler; 
            expires 30d; ## Assume all files are cachable
     }

e um monte de outras sugestões, mas parece que não conseguem dar certo ...

Tnx

    
por Nicovs_be 17.10.2012 / 12:46

1 resposta

6

Modifique sua configuração assim:

# rewrite html extensions
rewrite ^(/.+)\.html$ $scheme://$host$1 permanent;

location / {
    index index.html index.php;
    # this way nginx first tries to serve the file as an .html although it doesn't have the extension
    try_files $uri.html $uri $uri/ @handler;
}

Claro que você pode adicionar qualquer configuração de cache, etc., mas isso deve ser suficiente para remover a parte .html.

    
por 17.10.2012 / 16:46

Tags