Esta é uma versão que usa a diretiva nginx try_files
.
server {
listen 80;
listen [::]:80 default_server ipv6only=on;
root /home/goggelz/www;
server_name localhost;
rewrite_log on;
index index.php;
location /php-mvc {
try_files $uri $uri/ @mvcrewrite;
}
location @mvcrewrite {
rewrite ^ /php-mvc/index.php?url=$request_uri last;
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
Aqui, o try_files
é usado para verificar primeiro se o URI solicitado existe como um arquivo ou diretório. Se existir, é enviado. Se não existir, a solicitação é encaminhada para o bloco @mvcrewrite
, onde a solicitação é reescrita para passar o URI para o index.php
Isso também pode corrigir o problema de abrir o host local.