Nginx 重定向正则表达式

Nginx 重定向正则表达式

我有这个网址:

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;

在 Online Regex 中有效,但在 nginx 中无效

请问有什么帮助吗?

答案1

已编辑

我首先想到的是,只需改变正则表达式就可以了,如下所示:

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

但是,由于重写匹配只对“文件名”部分起作用(最多?),所以它不起作用。需要其他一些技术。

相关内容