You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

URL Rewrite Module:将HTTP重定向至指定端口90的HTTPS

解决IIS多端口HTTP转HTTPS重定向丢失端口的问题

你的问题根源在于配置里使用的{SERVER_NAME}服务器变量只包含主机名,不会携带请求的端口号,所以当访问http://xxx.xxx.x.xxx:90时,重定向后端口就被丢弃了。

最简单的解决方案是把重定向URL中的{SERVER_NAME}替换成{HTTP_HOST}——这个变量会完整保留请求中的主机名和端口信息(如果请求带了端口的话)。修改后的完整配置如下:

<rewrite>
<rules>
<rule name="RedirectToHTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>

这样修改后:

  • 访问http://xxx.xxx.x.xxx(默认80端口)会正确重定向到https://xxx.xxx.x.xxx
  • 访问http://xxx.xxx.x.xxx:90会自动重定向到https://xxx.xxx.x.xxx:90

如果你的HTTPS端口和对应的HTTP端口不一致(比如HTTP用90,HTTPS用9090),可以添加额外的条件判断来指定目标端口,但根据你的需求,两者端口相同,用{HTTP_HOST}是最简洁可靠的方式。

内容的提问来源于stack exchange,提问作者Anup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 16:22:54