Nginx 位置 - 不区分大小写,带空格

Sam*_*née 5 nginx

我的问题是关于 nginx“位置”配置块:

如果我想在 URL 中创建一个带有空格字符(好吧,%20)的位置,我可以这样做:

location ^~ "/Style Library/" {
}
Run Code Online (Sandbox Code Playgroud)

如果我想创建一个不区分大小写的位置,我可以这样做:

location ~* ^/StyleLibrary/ {
}
Run Code Online (Sandbox Code Playgroud)

但是,我找不到一种方法来获取不区分大小写且空格字符有效的位置。这些似乎都不起作用:

location ~* "^/Style Library/" {
}

location ~* ^/Style[^_]Library/ {
}

location ~* ^/Style\sLibrary/ {
}

location ~* ^/Style.Library/ {
}
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

kol*_*ack 4

您是否有其他正则表达式位置可能会在服务器块中较早地处理请求?我刚刚在本地进行了测试,并且能够使以下位置正常工作:

location ~* "^/Style Library/" {
  rewrite ^ /dump.php;
}
Run Code Online (Sandbox Code Playgroud)

其中 /dump.php 只是一个执行 var_export($_SERVER) 的简单脚本;

我测试了这个

curl -i "dev/StYlE LiBrArY/"
Run Code Online (Sandbox Code Playgroud)

我猜想其他某个位置正在处理该请求,而不是该正则表达式位置。