No Apache, você tem essas diretivas RewriteCond
para excluir !/public
e /index.php
. Em Nginx, basta adicionar um location
s separado para eles:
location /public {
}
location = /index.php {
}
Seu rewrite
está quase lá, mas ao contrário do Apache, o substituição string no Nginx é sempre root relative (não location
relative) e deve ter o primeiro /
. Além disso, sugiro remover a barra entre php/?
como desnecessário.
location / {
rewrite ^(.*)$ /index.php?params=$1;
}