2

私はしばらくの間探していて、回避策を試みましたが、有用なものは何も思いつきませんでした.

サイト移行からの URL の (大規模な) リストがあり、URL 全体とクエリ文字列を一致させ、別の URL にリダイレクトする必要があります。

私が見ることができる限り、次はにのみ一致/mensしますが、クエリ文字列の残りの部分は一致しません。

rewrite "^/mens?brand%5B%5D=27&section%5B%5D=5&price-min=0&price-max=2000&sort=newest"  "/t/gender/men" permanent;

それが重要な理由は、以下のようにリダイレクトする必要がある、わずかに異なるクエリ文字列を持つ同様の URL がたくさんあるためですが、実際には機能します.... :-/

rewrite "^/mens/shop?q=road+map+polo"       "/t/category/golf-knits"    permanent;
rewrite "^/mens/shop?q=six+pocket+pant"     "/t/category/golf-pants"    permanent;

#etc... ad noiseam 

前もってありがとう、ポール。

4

1 に答える 1

3

変数には$request_uriURL 全体が含まれます。mapa を使用して、リダイレクトに変換できます。

map $request_uri $target {
    ~*^/mens/shop\?q=road\+map\+polo   /t/category/golf-knits;
    ~*^/mens/shop\?q=six\+pocket\+pant /t/category/golf-pants;
}

server {
    ...
    if ($target) { return 301 $target; }
    ...
}

詳細については、このドキュメントを参照してください。

于 2016-03-18T12:37:36.360 に答える