У меня есть статический сайт 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;
}
Видеть этот документ для подробностей.