Como reescrever urls para remover .php em nginx?

1

Pretendo fazer reescrever meus URLs para que as páginas não terminem em /.php.

Por exemplo, eu quero fazer com que '/about.php' seja como '/ about' ou '/ about /'

Alguém pode compartilhar o módulo para fazer isso? Se você tiver um exemplo de arquivo nginx.conf ou virtual.conf que mostre esse tipo de reescrita, eu ficaria grato.

Obviamente, eu sou um noob, mas estou tentando aprender pelo exemplo.

    
por Andrew 26.06.2012 / 23:03

2 respostas

1

Você pode usar a diretiva try_files para verificar se há um arquivo com .php anexado. Por exemplo:

try_files $uri.php $uri;

Isso primeiro procurará /about.php e, em seguida, processará /about , se ele não existir.

    
por 27.06.2012 / 01:31
0
 location /about/ {
  proxy_pass http://backend/about.php;
 }

ou

# this will catch ALL files and rewrite ALL requests
 (like /blabla/file to /blabla/file.php)
# it is not tested , but I guess you will understand this :)

location / {
    rewrite ^/(.+)$ /$1.php break;
    proxy_pass http://backend;
}

ou pode ser a maneira mais simples

location / {
    proxy_path http://backend$uri.php #append .php to all files
}

final lembre-se que o módulo de reescrita está lento .. tente evitá-lo

    
por 27.06.2012 / 01:58

Tags