首页 > 解决方案 > 无法在 MVC C# 中从 www.domain.com 重定向到 domain.com

问题描述

我正在尝试在 ASP.NET MVC 5 中从网站从https://www.example.com重定向到https://example.com,但我无法做到这一点,在导航到时出现此错误https://www.example.com

HTTP Error 404. The requested resource is not found.

我尝试使用此处提供的解决方案

https://stackoverflow.com/a/3197446/3559462

https://stackoverflow.com/a/2178381/3559462

目前我的 Web.Config 有这个用于 url 重写的代码

<rule name="Redirect everything to https://example.com" patternSyntax="Wildcard" stopProcessing="true">
      <match url="*" />
      <conditions logicalGrouping="MatchAny">
        <add input="{HTTP_HOST}" pattern="example.com" negate="true" />
        <add input="{HTTPS}" pattern="off" ignoreCase="true" />
      </conditions>
      <action type="Redirect" url="https://example.com/{R:0}" />
    </rule>

什么不见​​了?它以前可以工作但现在不行,为什么我突然收到 404 以及如何将https://www.example.com 重定向https://example.com而不会出现任何错误。

我是否需要在我的 GoDaddy 帐户中注册任何 DNS 设置?或者 C#/web.config 代码可以解决这个错误。

编辑:尝试使用 url https://example.com时,它可以工作,这是请求/响应标头图像

标题

标签: c#asp.net-mvcweb-config

解决方案


我能够使用以下步骤解决此问题:

  1. 登录我的 GoDaddy DNS 管理页面并添加一个新的类型“A”记录,其中 Host 为“www”,To 为“网站的 IP 地址”,TTL = 1 小时。
  2. 添加新的 DNS 记录后,我使用远程桌面登录我的服务器并使用 IIS 管理器导航到我的网站(服务器-> 站点(展开它)-> 选择您的网站),单击“绑定”(在右侧面板内,在“编辑”下方)

然后添加新的绑定,其值为 Type : https , host-name : www.example.com , Port : 443 , IP Address : IP Address of website,

就是这样,按照上述步骤后,我的问题得到了解决,现在网站被重定向到https://example.com并带有 301 永久重定向

另请注意我已经在问题中放置的 Web.Config 设置(执行从 www 到非 www 网站的重定向),这里又是

<rule name="Redirect everything to https://example.com" patternSyntax="Wildcard" stopProcessing="true">
  <match url="*" />
  <conditions logicalGrouping="MatchAny">
    <add input="{HTTP_HOST}" pattern="example.com" negate="true" />
    <add input="{HTTPS}" pattern="off" ignoreCase="true" />
  </conditions>
  <action type="Redirect" url="https://example.com/{R:0}" />
</rule>

推荐阅读