Site estático do Ngnix com um alias / reescrita do PHP

1

Eu tenho um site local Angular estático e quero que o caminho / deploy execute um php no script php /var/www/app/deploy/deploy.php. Eu tentei uma regra de reescrita e não ter sorte.

Qual é a maneira correta de fazer isso?

php.conf

index index.php index.html index.htm;

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_intercept_errors on;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    fastcgi_pass   php-fpm;
}

vhost.conf

server {
    listen       80;
    server_name  app.com;
    root         /var/www/app/;
    include      /etc/nginx/default.d/php.conf;

    location / {        
        root /var/www/app/frontend/dist;            
        try_files $uri $uri/ /index.html =404;
        rewrite ^/deploy /var/www/app/deploy/deploy.php;
    }
}
    
por Raymond 26.03.2017 / 18:51

1 resposta

2

Sua instrução rewrite precisa de um URI como o destino e não o nome do caminho. Você deve usar:

rewrite ^/deploy /deploy/deploy.php last;

Veja este documento para detalhes.

Em vez de usar uma instrução rewrite no bloco location / , você pode considerar a opção um pouco mais limpa de movê-la para um bloco de localização de correspondência exata:

location = /deploy {
    rewrite ^ /deploy/deploy.php last;
}

Veja este documento para detalhes.

    
por 26.03.2017 / 19:03