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

如何在ASP.NET MVC 5中编写规则将所有用户URL重定向到指定有效URL

ASP.NET MVC5 统一域名重定向实现方案

原配置的问题

  • 硬编码端口:4005,导致非该端口的请求无法触发规则
  • 仅处理HTTP转HTTPS场景,忽略了已用HTTPS但不带www的域名(比如https://test-systems.co.uk)
  • 重定向URL拼接错误:若原域名已是www.test-systems.co.uk,会生成www.www.test-systems.co.uk这类无效地址
  • 多余的{URL}条件,对规则逻辑无实际作用

正确的web.config重写规则

替换原<rewrite>节点内容为以下配置,即可实现所有指定URL重定向到https://www.test-systems.co.uk,同时保留原请求的路径和查询字符串:

<rewrite>
  <rules>
    <clear />
    <!-- 强制HTTPS+WWW统一域名 -->
    <rule name="Force HTTPS and WWW" enabled="true" stopProcessing="true">
      <match url="(.*)" />
      <conditions logicalGrouping="MatchAny">
        <!-- 匹配所有未启用HTTPS的请求 -->
        <add input="{HTTPS}" pattern="^OFF$" />
        <!-- 匹配所有非www开头的域名 -->
        <add input="{HTTP_HOST}" pattern="^www\.test-systems\.co\.uk$" negate="true" />
      </conditions>
      <action type="Redirect" url="https://www.test-systems.co.uk/{R:1}" appendQueryString="true" redirectType="Permanent" />
    </rule>
  </rules>
</rewrite>

规则说明

  • logicalGrouping="MatchAny":满足任意一个条件即触发重定向,覆盖HTTP转HTTPS、不带www转带www两种场景
  • redirectType="Permanent":返回301永久重定向,更利于搜索引擎优化
  • appendQueryString="true":自动保留原请求的查询参数(比如原请求http://test-systems.co.uk/page?id=1,重定向后变为https://www.test-systems.co.uk/page?id=1)
  • 直接写死目标域名,避免出现重复www的错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 22:25:48