https://non-www重新定向到的问题https://www

https://non-www重新定向到的问题https://www,http,iis,https,binding,Http,Iis,Https,Binding,我有一个网站,最近从http://转到https:// 这个站点是用IIS7上的MVC构建的,我知道我应该有4个绑定 主要的一个: (端口:443-ip地址:) 和其他3个都指向301,请重新指向上述内容 http://www.example.com - (port:80 - ip address: * -re-direct works) http://example.com - (port:80 - ip address: * -re-direct works) htt

我有一个网站,最近从http://转到https://

这个站点是用IIS7上的MVC构建的,我知道我应该有4个绑定

主要的一个:
(端口:443-ip地址:)

和其他3个都指向301,请重新指向上述内容

    http://www.example.com - (port:80 - ip address: * -re-direct works)
    http://example.com - (port:80 - ip address: * -re-direct works)
    https://example.com - (port:443 - ip address: * -re-direct does not work)
试图解决底部一个失败的原因,但无法访问站点。找不到服务器DNS地址

下面是我用来将http重定向到https的代码

            // The base only redirects GET, but we added HEAD as well. This avoids exceptions for bots crawling using HEAD.
            // The other requests will throw an exception to ensure the correct verbs are used. 
            // We fall back to the base method as the mvc exceptions are marked as internal. 

            if (!String.Equals(filterContext.HttpContext.Request.HttpMethod, "GET", StringComparison.OrdinalIgnoreCase)
                && !String.Equals(filterContext.HttpContext.Request.HttpMethod, "HEAD", StringComparison.OrdinalIgnoreCase))
            {
                base.HandleNonHttpsRequest(filterContext);
            }

            // Redirect to HTTPS version of page
            // We updated this to redirect using 301 (permanent) instead of 302 (temporary).
            string url = "https://" + filterContext.HttpContext.Request.Url.Host + filterContext.HttpContext.Request.RawUrl;

            filterContext.Result = new RedirectResult(url, true);
你知道底部装订有什么问题吗?试图在谷歌站长搜索控制台上设置第四个属性,但由于DNS失败,显然无法设置


非常感谢您的帮助。干杯

最好在web服务器级别执行此类操作,而不是在应用程序代码中执行。 对于IIS,您需要通过添加重写规则来更改文件Web.config。 我无法测试它,但您应该添加如下内容:

<rewrite>
  <rules>
    <rule name="Redirect to www" patternSyntax="Wildcard" stopProcessing="true">              
      <match url="*" />
      <conditions>
        <add input="{HTTP_HOST}" pattern="example.com" />
      </conditions>
      <action type="Redirect" url="http://www.example.com/{R:0}" />
    </rule>

    <rule name="HTTP Redirect to HTTPS" enabled="true" stopProcessing="true">
      <match url="(.*)" ignoreCase="false" />
      <conditions>
        <add input="{HTTPS}" pattern="off" />
      </conditions>
      <action type="Redirect" url="https://www.example.com/{R:1}" appendQueryString="true" redirectType="Permanent" />
    </rule>
  </rules>


问题在于我们的域提供商的DNS。

您好,感谢您的回复。不幸的是,这也没有乐趣。我担心绑定或GoDaddy级别有问题。我觉得奇怪的是,http://non-www到https://www工作正常,而https://non-www到https://www工作不正常。即使没有re-direct,我也无法让https://non-www的流量正常工作:(你试过吗?