IIS配置5050端口转8080反向代理正则匹配失效问题咨询
问题根本原因
- IIS URL 重写模块的「匹配URL」规则默认仅匹配请求的路径部分,也就是请求地址中域名、端口之后,查询参数之前的内容,完全不会包含端口号字段。你直接在匹配URL的正则中写
5050,自然无法命中任何请求,规则自然不会触发。 - 之前使用
(.*)能正常生效,是因为该正则匹配所有路径,只要请求打到当前站点绑定的5050端口上,路径匹配校验通过就会触发重定向,和你预期的端口匹配逻辑完全是两个维度。
修复方法
如果需要基于端口匹配触发规则,需要通过服务器变量添加条件判断:
- 匹配URL的规则保留为
(.*),用于匹配所有路径请求 - 新增规则条件:
- 条件输入填写服务器变量:
{SERVER_PORT} - 匹配类型选择「正则表达式」
- 匹配规则填写:
^5050$
- 条件输入填写服务器变量:
- 操作部分保留原有配置,将请求重定向到目标服务器8080端口即可。
内容的提问来源于stack exchange,提问作者Adolfo
相关产品推荐
相关产品推荐

