Try_files 不适用于 If 块并导致 404 错误

问题描述 投票:0回答:1

我使用以下指令为某个位置提供服务:

 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/ 的内容,则相同的配置可以正常工作。

nginx-config
1个回答
0
投票

使用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;
© www.soinside.com 2019 - 2024. All rights reserved.