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

ASP.NET通过Web.config实现HTTP跳转至指定HTTPS源解决CORS问题

解决HTTP转HTTPS并统一域名以避免CORS问题的Web.config配置

我来帮你调整重写规则,让所有请求(不管是带www还是不带www的HTTP请求)都统一跳转到https://example.com,彻底解决跨源冲突问题。

修改后的完整配置:

<rewrite>
  <rules>
    <rule name="HTTP_TO_HTTPS_AND_UNIFY_DOMAIN" enabled="true" stopProcessing="true">
      <match url="(.*)"/>
      <conditions logicalGrouping="MatchAny">
        <!-- 匹配所有HTTP协议的请求 -->
        <add input="{HTTPS}" pattern="^OFF$"/>
        <!-- 可选:匹配HTTPS协议下的www域名请求,强制统一到非www域名 -->
        <add input="{HTTP_HOST}" pattern="^www\.example\.com$"/>
      </conditions>
      <action type="Redirect" url="https://example.com/{R:1}" appendQueryString="false"/>
    </rule>
  </rules>
</rewrite>

关键修改说明:

  • 固定跳转域名:把原来的https://{HTTP_HOST}{REQUEST_URI}替换成https://example.com/{R:1},{R:1}对应匹配到的URL路径部分,确保所有请求最终都指向统一的目标域名。
  • 扩展匹配条件:新增了对www.example.com主机名的匹配规则——如果你的业务需要强制所有HTTPS请求也统一到非www域名,保留这条规则即可;如果只需要处理HTTP转HTTPS的场景,可以删掉这条条件。
  • 路径精准传递:使用{R:1}代替{REQUEST_URI},能更可靠地保留原请求的路径与参数,配合appendQueryString="false"避免参数重复拼接的问题。

为什么这样能解决CORS问题:

CORS同源策略要求请求的协议、域名、端口三者完全一致才会被视为同源。之前的配置会让https://www.example.com和https://example.com被识别为两个不同的源,调整后所有请求最终都会收敛到https://example.com,从根源上消除了跨源冲突。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 09:01:49