Nginx, redireciona todos os pedidos para um único arquivo index.php na subpasta

1

Estou tentando mover meu website do Apache para o Nginx. Meu site está estruturado assim:

  • www_root
    • público
    • outras pastas

Todas as solicitações são redirecionadas de www_root para a pasta pública com um .htaccess que contém:

RewriteRule    ^$   public/    [L]
RewriteRule    (.*) public/$1    [L]

Na pasta pública , todas as solicitações são redirecionadas para o ponto de entrada único index.php com este .htaccess:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php?page=$1 [QSA,L]

No momento, meu bloco de servidor é assim:

server {
    server_name domain.com www.domain.com;
    root /var/www/domain.com/htdocs/public;

    location / {
        # try to serve file directly, fallback to index.php
        try_files $uri /index.php$is_args$args;
    }

    location ~ ^/index\.php(/|$) {
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

        include fastcgi_params;
        fastcgi_param  SCRIPT_FILENAME  $realpath_root$fastcgi_script_name;
        fastcgi_param DOCUMENT_ROOT $realpath_root;
        internal;
    }
}

Por isso, só vejo a página desejada adicionando a string de consulta. Por exemplo. link

Como posso conseguir isso com o Nginx? Eu tentei muitas soluções, mas sem sucesso.

Obrigado pela sua ajuda!

    
por Vince 24.10.2015 / 13:04

0 respostas