Nginx リダイレクト正規表現

Nginx リダイレクト正規表現

このURLがあります:

https://example.com/admin/catalog/product/view/id/45533/?___store=en_us&sendAttributionID=email_automation_5ffa6c5967af4527508858fb&ContactID=5f9d9eac1215fsdfsdfasdffsdfsdf04ff6c98af

nginx を使用して次のようにリダイレクトする必要があります。

https://example.com/catalog/product/view/id/45533/?___store=el_gr&sendAttributionID=email_automation_5ffa6c5967af4527508858fb&ContactID=5f9d9eac1215fsdfsdfasdffsdfsdf04ff6c98af

実際、最初のリンクから必要です:削除するには

admin

そして、次のように置き換えます:

en_us

と:

el_gr

今のところ、この正規表現があります:

rewrite ^/admin/(.*)$ https://example.com/$1 permanent;

これにより、管理者単語。しかし、

en_us

UML のヘルプを受けた後、私は現在次の状況にあります:

rewrite ^/admin/(.*?)en_us(.*?)$ https://example.com/$1el_gr$2 permanent;

これはオンライン正規表現では機能しますが、nginxでは機能しません

何か助けてください。

答え1

編集済み

最初は正規表現を次のように変更するだけで解決できると考えました。

rewrite ^/admin/(.*?)___store=en_us(.*)$ https://example.com/$1___store=el_gr$2 permanent;

ただし、書き換えマッチングは「ファイル名」部分(? まで)のみで機能するため、機能しません。他のテクニックが必要です。

関連情報