对于Nginx prox_重定向,请使用脚本而不是正则表达式来修改位置标头

对于Nginx prox_重定向,请使用脚本而不是正则表达式来修改位置标头,nginx,proxy,reverse-proxy,nginx-reverse-proxy,Nginx,Proxy,Reverse Proxy,Nginx Reverse Proxy,对于Nginx,proxy_redirect,我们可以使用字符串而不是string或regex吗?我需要使用proxy_redirect替换位置字符串中多次出现的文本,但我不确定如何使用regex。因此,我正在检查proxy\u redirect是否可以让我们使用脚本,这样就很容易了。您可以在包含proxy\u pass语句的单个块中使用多个proxy\u redirect语句。Nginx按顺序计算包含正则表达式的语句,直到找到匹配项,因此将更具体的正则表达式放在不太具体的正则表达式之前 要替换

对于Nginx,proxy_redirect,我们可以使用字符串而不是string或regex吗?我需要使用proxy_redirect替换位置字符串中多次出现的文本,但我不确定如何使用regex。因此,我正在检查proxy\u redirect是否可以让我们使用脚本,这样就很容易了。

您可以在包含
proxy\u pass
语句的单个块中使用多个
proxy\u redirect
语句。Nginx按顺序计算包含正则表达式的语句,直到找到匹配项,因此将更具体的正则表达式放在不太具体的正则表达式之前

要替换3xx响应的
位置
头中出现的一个模式,可以使用:

proxy_redirect ~^(.*)origin.example.com(.*)$ $1main.example.com$2;
proxy_redirect ~^(.*)origin.example.com(.*)origin.example.com(.*)$ $1main.example.com$2main.example.com$3;
proxy_redirect ~^(.*)origin.example.com(.*)origin.example.com(.*)origin.example.com(.*)$ $1main.example.com$2main.example.com$3main.example.com$4;
proxy_redirect ~^(.*)origin.example.com(.*)origin.example.com(.*)$ $1main.example.com$2main.example.com$3;
proxy_redirect ~^(.*)origin.example.com(.*)$ $1main.example.com$2;
要替换同一图案的两个引用,请使用:

proxy_redirect ~^(.*)origin.example.com(.*)$ $1main.example.com$2;
proxy_redirect ~^(.*)origin.example.com(.*)origin.example.com(.*)$ $1main.example.com$2main.example.com$3;
proxy_redirect ~^(.*)origin.example.com(.*)origin.example.com(.*)origin.example.com(.*)$ $1main.example.com$2main.example.com$3main.example.com$4;
proxy_redirect ~^(.*)origin.example.com(.*)origin.example.com(.*)$ $1main.example.com$2main.example.com$3;
proxy_redirect ~^(.*)origin.example.com(.*)$ $1main.example.com$2;
要替换同一图案的一个、两个或三个引用,可以使用:

proxy_redirect ~^(.*)origin.example.com(.*)$ $1main.example.com$2;
proxy_redirect ~^(.*)origin.example.com(.*)origin.example.com(.*)$ $1main.example.com$2main.example.com$3;
proxy_redirect ~^(.*)origin.example.com(.*)origin.example.com(.*)origin.example.com(.*)$ $1main.example.com$2main.example.com$3main.example.com$4;
proxy_redirect ~^(.*)origin.example.com(.*)origin.example.com(.*)$ $1main.example.com$2main.example.com$3;
proxy_redirect ~^(.*)origin.example.com(.*)$ $1main.example.com$2;

使用
~*
使正则表达式不区分大小写。有关详细信息,请参见。

您可以在一个块中使用多个
proxy\u redirect
语句,但能否举例说明您正在尝试实现的目标?下面是另一个问题,它描述了我试图用proxy\u redirect解决的总体问题。在字符串中更改单个文本时,正则表达式可以工作,但在多次出现时,正则表达式是不可能的。我认为如果它支持脚本,那么它就可以很容易地完成。字符串可能出现多少次?您可以编写一个正则表达式来处理一个事件,另一个正则表达式来处理两个事件,等等。到目前为止,共有三个事件。任何提示或参考如何做这是伟大的!哇,这个很好用。我有一个确切的想法。谢谢你的指导。