我使用以下指令为某个位置提供服务:
try_files $request_uri $request_uri/index.html =404;
如果我添加一个带有 if 块的 add_header ,如下所示,如果 request_uri 匹配,我会收到 404 错误,如果我删除此块或者 request_uri 不匹配,它会起作用。即使我删除了 add_header,并且如果 url 符合条件,我也会得到 404。
if ($request_uri = '/jp/%e8%a9%90%e6%ac%ba%e5%b8/' ) {
add_header X-Header-Custom "test";
}
顺便说一句,如果 URL 不是 Unicode,我的意思是如果它是类似 /jp/example/ 的内容,则相同的配置可以正常工作。
使用map代替if块解决了问题。
map $request_uri $my_val {
'/jp/%e8%a9%90%e6%ac%ba%e5%b8/' 'test';
default "";
}
add_header X-Header-Custom $my_val;