我尝试定义一个nginx服务器配置如下,但确切的位置从来没有被触发,只有一般的路径被触发。所以,响应头总是Access-Control-Allow-Origin。我想要的是,当我访问“curl -v localhost:8081”时,它应该只返回XYZ头,因为它是完全匹配的,但它返回的是一般的。我做错了什么?
server {
listen 8081;
server_name localhost;
#index index.html;
root /usr/share/nginx/wallet;
location / {
try_files $uri /index.html /example.html =404;
add_header Access-Control-Allow-Origin *;
}
location = / {
add_header XYZ "xyxxxxxxxxxxxxx";
}
}
1条答案
按热度按时间sycxhyv71#
精确匹配位置是处理请求的第一个位置,但不是处理请求的最后一个位置。
Nginx在内部将URI重写为
/index.html
,并在通用位置块中处理此新请求。通过添加
try_files
语句,可以强制Nginx在完全匹配的位置处理整个请求。例如: