Статический сайт Ngnix с одним псевдонимом / перезаписью PHP
У меня есть статический сайт Angular site, и я хочу, чтобы путь /deploy запускал 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;
}
}
1 ответ
Ваш rewrite
Оператору нужен URI в качестве цели, а не путь. Вы должны использовать:
rewrite ^/deploy /deploy/deploy.php last;
Смотрите этот документ для деталей.
Вместо того, чтобы использовать rewrite
заявление в location /
блок, вы можете рассмотреть немного более чистый вариант перемещения его в блок с точным соответствием:
location = /deploy {
rewrite ^ /deploy/deploy.php last;
}
Смотрите этот документ для деталей.