Nginx,我正在尝试重定向一个与查询参数匹配的网址,但是它不起作用。
http://www.example.org/xyz?abc=123&color="<K>" to the below URL http://www.example.org/anything/something).
我在下面尝试过,但是没有用。
location = /xyz {
if ($args ~* "^&color="<K>") {
rewrite ^.*$ /anything/something redirect;
}
}
有人可以帮忙吗?
答案 0 :(得分:1)
诸如"
,<
和>
之类的字符在原始请求中为URL encoded,并保留在$args
变量中。
此外,您的正则表达式中的^&
会将&
锚定到查询字符串的开头,而实际上它前面还有另一个参数。
以下示例似乎可以正常工作:
location = /xyz {
if ($args ~* "&color=%22%3CK%3E%22") {
...
}
}
或者,您可以直接使用以下方法测试color
参数的值:
location = /xyz {
if ($arg_color = '%22%3CK%3E%22') {
...
}
}