1
我遇到了我的正则表达式的麻烦,不知道它有什么问题。它将使用orls/f
而不是orls/f?p=4550
返回一个URi。当我通过https://secure.toto02.com/orls/myservice/f?p=4550
Nginx:位置正则表达式不工作
我的conf文件低于
location ~ "^/([a-zA-Z]+)/myservice/(.+)$" {
error_log /var/log/nginx/error-server.log notice;
rewrite_log on;
#proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_pass http://192.168.3.45:8080/orls/$2;
proxy_redirect http://192.168.3.45:8080/orls/ https://secure.toto02.com/$1/myservice/ ;
}
谁能帮助?
我使用转义字符''\\在你目前的正则表达式,我可以看到它正确地捕捉你想要的组。 https://regex101.com/r/vI6rG3/1。问题是什么 ? – apgp88
我的问题是来形式第二次捕获它似乎只是成熟的'f'而不是'f?p = 4550'.I使用了你的建议,但它仍然无法正常工作 – skip87
你确定这是一个正则表达式问题吗?难道nginx的位置不包含查询吗? (我无法从文档中找到)。您可以尝试对第二个捕获组(如f \ p = 4550)进行“硬编码”并查看会发生什么...... – Attilio