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

请教两条ASP.NET重写规则的具体功能

IIS URL重写规则功能说明

以下是你的ASP.NET MVC应用中rewrite.config里的两条重写规则:

<rule name="CanonicalHostNameRule1" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTP_HOST}" pattern="^www\.example\.com$" negate="true" />
    </conditions>
    <action type="Redirect" url="http://www.example.com/{R:1}" redirectType="Permanent" />
</rule>

<rule name="HTTP to HTTPS redirection" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
        <add input="{HTTPS}" pattern="off" />
    </conditions>
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>

规则1:CanonicalHostNameRule1

这是规范主机名的301永久重定向规则,核心作用是统一域名访问入口:

  • 触发条件:当请求的域名({HTTP_HOST})不是www.example.com时,比如用户访问example.com、其他子域名等非指定域名
  • 执行动作:将请求永久重定向到http://www.example.com/{R:1},其中{R:1}会完整保留原请求的URL路径(比如访问http://example.com/about,会跳转到http://www.example.com/about)
  • stopProcessing="true"表示这条规则触发后,不再执行后续其他规则(但重定向是浏览器重新发起请求,新请求会再次走完整的规则匹配流程)

规则2:HTTP to HTTPS redirection

这是HTTP转HTTPS的301永久重定向规则,和你的猜测完全一致:

  • 触发条件:当请求使用HTTP协议({HTTPS}值为off)时,无论访问的域名是什么
  • 执行动作:将请求永久重定向到https://{HTTP_HOST}/{R:1},保留原域名和路径。比如访问http://www.example.com/blah,会直接跳转到https://www.example.com/blah;如果用户先访问http://example.com/blah,会先被第一条规则跳转到http://www.example.com/blah,浏览器发起新请求后,再被这条规则跳转到https://www.example.com/blah

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 00:33:23