Você deve reescrever:
if (!-e $request_filename) { rewrite ^.*$ /index.php last; }
como:
try_files $uri $uri/ /index.php;
e mova-o para o bloco location /
, para evitar conflitos desagradáveis com as declarações globais if
e rewrite
.
Use o modificador ^~
nos locais de prefixo que têm precedência sobre os locais de expressão regular. Consulte este documento para obter detalhes.
Por exemplo:
root /var/www/public;
index index.php;
location ^~ /es/ {
proxy_pass http://<my-domain>:8200/;
}
location ^~ /gl/ {
proxy_pass http://<my-domain>:3000/;
}
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass <my-domain>:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PHP_VALUE "error_log=/var/log/nginx/php_errors.log";
fastcgi_buffers 16 16k;
fastcgi_buffer_size 32k;
}
Coloque suas declarações fastcgi_param
após include fastcgi_params;
para evitar que sejam silenciosamente substituídas pelo arquivo incluído.