
Me gustaría "convertir" estas reglas en una regla nginx. Creo que el bloque de ubicación es el lugar correcto, pero mis soluciones no funcionan.
Options -Indexes
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/public%{REQUEST_URI} -f
RewriteRule ^(.*)$ public/$1 [QSA,END]
RewriteCond %{REQUEST_FILENAME} !index\.php
RewriteRule ^(.+)$ index.php?route=$1 [QSA,L]
Probé esto
location / {
rewrite ^(.*)$ /public/$1;
rewrite ^(.+)$ /index.php?route=$1 break;
}
Respuesta1
La rewrite
directiva nginx se aplica incondicionalmente, mientras que usted tiene muchas condiciones en sus reglas de reescritura. Utilizar eldirectiva try_filesen cambio:
location = /index.php {
# PHP options
}
location / {
try_files /public$uri /public$uri/ /index.php?route=$uri;
}