php - 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 的网址都由第一个位置提供服务,甚至是 site.example.com/api/v1.0/ ?提前谢谢了。
编辑:我已经尝试颠倒顺序,所以首先是 /api/v1.0/ 和第二个 /,但没有运气。
EDIT2:尝试使用 curl 响应是正确的,但是即使在隐身模式下,chrome 也会继续使用缓存...
解决方案
这是 nginx 中的预期行为。location /
基本上匹配一切。如果您只想匹配/
,请使用确切位置:location = /
推荐阅读
- html - 如何从日期选择器中设置日期以便能够保存 mvc 5
- php - Laravel 复合模型映射
- c# - 分页图数据
- sql - 使用第一个 SELECT 的结果嵌套 SELECT
- google-admin-sdk - Google SDK 缺少访问令牌
- twitter-bootstrap - 在 boostrap 上左对齐超链接
- apache-spark - 使用两个 where 条件过滤记录时无法解决 Spark 中的错误
- google-sheets - 根据 Google 表格中的第一个单元格格式化列中的单元格
- elasticsearch - Openstack 实例上的 Elasticsearch 7 无法设置 ES 集群
- firebase - 从 firebase 功能重定向到 paypal 结帐不起作用