Nginx
停止 Nginx 重寫破壞位置塊之後的所有頁面
我不得不重寫 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,請使用完全匹配語法:
location = /brands/exampleA/ { ... }
有關詳細資訊,請參閱此文件。