Назад | Перейти на главную страницу

Статический сайт Nginx с одним псевдонимом PHP / перезапись

У меня есть статический сайт Angular, и я хочу, чтобы путь / развертывание запускал php скрипт php /var/www/app/deploy/deploy.php. Я пробовал правило перезаписи, и мне не повезло.

Как правильно это сделать?

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;
    }
}

Ваш rewrite Оператору нужен URI в качестве цели, а не путь. Вам следует использовать:

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

Видеть этот документ для подробностей.

Вместо того, чтобы использовать rewrite заявление в location / block, вы можете рассмотреть более простой вариант - переместить его в блок местоположения с точным совпадением:

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

Видеть этот документ для подробностей.