Nginx多Location重定向失效:Bitbucket插件URL无法跳转至Jira
问题分析与解决方案
你的Nginx重定向未生效的核心原因是location匹配规则错误:
- 你使用了
=进行精确匹配,但精确匹配的路径不能包含*通配符,这个规则根本不会匹配到/plugins/servlet/jira-integration/issues/ABC-3330这类带动态issue编号的请求,所有请求最终都进入了location /代理到Bitbucket。 - 要捕获路径中的动态issue编号并用于重定向,需要使用正则表达式location来实现。
修正后的Nginx配置
将原错误的location块替换为以下内容:
location ~^/plugins/servlet/jira-integration/issues/(.+)$ { return 301 https://myjira.atlassian.net/browse/$1; }
关键说明
~表示开启正则匹配,^确保路径从开头匹配,避免其他相似路径干扰(.+)用于捕获/issues/之后的所有内容(即你的issue编号如ABC-3330),捕获到的内容通过$1引用- 保持原有
location /的代理配置不变,其他Bitbucket请求仍正常转发到本地服务
验证方式
修改配置后,执行nginx -t检查配置语法,确认无误后执行nginx -s reload重载配置,再次访问目标URL即可触发301重定向到Jira地址。
内容的提问来源于stack exchange,提问作者Pathfinder
相关产品推荐
相关产品推荐

