我是 nginx 的新手,它是重写命令,我真的需要一些帮助。我一整天都在尝试解决这个问题,但什么都没有。
如果用户提供此网址:
someurl.com/sub/1.0/healthcheck
我想将其重写为指向 Symfonys 项目文件:
/var/www/sub/1.0/web/app_dev.php
网址中的“健康检查”适用于 Symfony。
但是没有。这里不对劲。它似乎找到了 Symfony,但 url 有问题,因为它总是返回:
找不到路线
即使我从 url 中省略了“healthcheck”,它仍然返回相同的错误。(有一个以“/”为路线的 index -action。)
这是当前的 Nginx 配置:
server {
server_name localhost;
root /var/www/sub/1.0/web;
error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
location / {
root /var/www/html/;
index index.html;
}
location /sub/1.0/ {
index app_dev.php;
rewrite ^/sub/1.0/ /app_dev.php last;
}
location ~ (app|app_dev).php {
include fastcgi_params;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
}
}