
特定のクエリ パラメータを含む 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= クエリ パラメータのみに一致する必要があります。
答え1
現在、設定ではプレフィックスの場所、つまり、要求されたURIが始まる値/brands/exampleA
。
一致を1つのURIのみに制限するには、完全に一致構文:
location = /brands/exampleA/ { ... }
見るこのドキュメント詳細については。