Use o módulo de reescrita . Algo como isso deve fazer isso:
location / {
autoindex off;
rewrite ^/$ app/ last;
if (!-e $request_filename) {
rewrite ^/(.*)$ app/index.php?url=$1;
}
}
Eu tenho o arquivo .htaccess
abaixo no apache que redireciona todas as solicitações para app/index.php
com ou sem o parâmetro GET
. Acabei de instalar o NGINX e meu aplicativo não será executado.
Alguém pode ajudar a replicar a mesma funcionalidade no NGINX? Obrigado.
RewriteEngine on
Options -Indexes
RewriteRule ^$ app/ [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ app/index.php?url=$1 [QSA,L]
Use o módulo de reescrita . Algo como isso deve fazer isso:
location / {
autoindex off;
rewrite ^/$ app/ last;
if (!-e $request_filename) {
rewrite ^/(.*)$ app/index.php?url=$1;
}
}
Não há necessidade de usar o módulo de reescrita para a maior parte dessa configuração.
As regras de reescrita do apache significam:
RewriteRule ^$ app/ [L]
- envia a URL / para o diretório do aplicativo RewriteCond %{REQUEST_FILENAME} !-d
- se o pedido não for um diretório RewriteCond %{REQUEST_FILENAME} !-f
- se o pedido não for um arquivo RewriteCond %{REQUEST_FILENAME} !-l
- se o pedido não for um symlink app/index.php?url=$1
Em nginx, o equivalente é:
# No automatic directory listings
autoindex off;
# Send the root url to the app dir
index index.php;
rewrite ^/$ app/ last;
# check if the url matches a file, directory and if not send to app/index.php
try_files $uri $uri/ app/index.php?url=$uri;
A verificação de um link simbólico é supérflua, pois um link simbólico também é um arquivo ou diretório.
Tags nginx .htaccess apache-2.2