我有几个网址,id
是一个变量。
/purchases/id
以下的所有内容都需要proxy_pass,URL此部分之后的所有内容都不需要proxy_pass,而是继续正常进行。下面是它应该如何工作的:
/purchases - allow proxy_pass
/purchases/id - allow proxy_pass
/purchases/id/terms - continue as normal
/purchases/id/terms/accept - continue as normal
/purchases/id/terms/cancel - continue as normal
/purchases/id/terms/return - continue as normal
这里是nginx配置。当前,所有URL都传递给proxy_pass。
location ~ ^/purchases {
proxy_pass https://myurl.com;
}
location ~ ^/purchases/(\d+)$ {
proxy_pass https://myurl.com;
}
是否有明显的遗漏之处?任何帮助,将不胜感激。谢谢。
向其他有此问题的人。问题不在于正则表达式或规则。这是规则的顺序。
第一个规则是捕获所有内容,然后nginx不需要应用第二个规则。
下面解决了这个问题:
location ~ ^/purchases/(\d+)$ {
proxy_pass https://myurl.com;
}
location ~ ^/purchases {
proxy_pass https://myurl.com;
}