我不得不重写 nginx.conf 中包含特定查询参数的 URL;
举个例子:-
location /brands/exampleA {
if ($arg_cat = "9") {
return 301 /page/brand-filter;
}
if ($arg_cat = "38") {
return 301 /page/category/brand-filter;
}
}
然后,这些 URL 重写将重写example.com/brands/exampleA/?cat=9
为example.com/page/brand-filter
和。example.com/brands/exampleA/?cat=38
example.com/page/category/brand-filter
这些工作完美,但问题是它们破坏了位置块的所有其他子页面,例如,以下页面都不会加载 Nginx 错误:-
example.com/brands/exampleA/range1
example.com/brands/exampleA/range2
example.com/brands/exampleA/range3
example.com/brands/exampleA/range4
那么有什么我可以添加到 location 语句中以停止任何应用于之后的任何内容exampleA
- 这些重写应该只匹配 ?cat= 查询参数。
您的配置当前使用前缀位置,这意味着当请求的 URI以值开头时会考虑它
/brands/exampleA
。要将匹配限制为仅一个 URI,请使用完全匹配语法:
有关详细信息,请参阅此文档。