Nginx位置根重叠

在此nginx配置中:

server {
    server_name site.example.com;
    index index.html index.php;

    location / {
        root /projects/proj1/frontend;
    }

    location /api/v1.0/ {
        root /projects/proj1;
        try_files $uri /api/v1.0/index.php$is_args$args;           

        location ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass php:9000;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        }
    }
}

为什么每个包含site.example.com的URL都由第一个位置提供服务,甚至包括site.example.com/api/v1.0/?预先非常感谢。

编辑:我已经尝试过反转顺序,所以第一个/api/v1.0/和第二个/,但是没有运气。

EDIT2:尝试使用curl响应是正确的,但是Chrome即使在隐身模式下也继续使用缓存...

pes2011 回答:Nginx位置根重叠

这是nginx中的预期行为。 location /基本匹配所有内容。如果只想匹配/,请使用准确的位置:location = /

本文链接:https://www.f2er.com/3056282.html

大家都在问