【问题标题】:web.config redirect all requests to https://wwwweb.config 将所有请求重定向到 https://www
【发布时间】:2013-09-27 12:46:57
【问题描述】:

我们希望将所有传入请求重定向到https://www.domain.com

我们已经尝试了几十个来自网络的代码片段,但没有一个涵盖上面的所有示例。

任何人都可以为 IIS 提供适当的 web.config 文件吗?

【问题讨论】:

    标签: iis web-config


    【解决方案1】:

    我遇到了同样的问题。这条规则对我有用。

        <rewrite>
            <rules>
                <clear />
                <rule name="Redirect non-www OR non-https to https://www">
                    <match url=".*" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{HTTP_HOST}" pattern="^domain.com$" />
                        <add input="{HTTPS}" pattern="off" />
                    </conditions>
                    <action type="Redirect" url="https://www.domain.com/{R:0}" redirectType="Permanent"/>
                </rule>
            </rules>
        </rewrite>
    

    【讨论】:

      【解决方案2】:

      最好的方法是通过您的 DNS 记录 + 一些 IIS 配置。

      • 添加将 domain.com 重定向到 www.domain.com 的 CName
      • 在 IIS 中,创建一个“假”网站并编辑其绑定以处理 http://www.domain.com
      • 在这个“假”网站(或通过 UI)的 web.config 中配置 HTTP 重定向,以将来自主机名 www.domain.com 的请求重定向到 https://www.domain.com$S$Q($S 和 $ Q 允许您在重定向后保留参数,请参阅this 链接了解更多信息)
      • 最后,移除您网站的 HTTP 绑定(仅在此网站上使用 https 绑定)。

      【讨论】:

      • 这也将domain.com重定向到domain.com?我们能够将所有请求重定向到 domain.com,除了这个:domain.com 知道为什么 web.config 文件不可能做到这一点吗?
      • CName 将为您重定向。 web.config 文件不可能,因为这是 DNS 记录的东西,与应用程序无关(因此,不是 web.config 的工作)。要记住的两件事:1. DNS 记录管理添加的“www” 2. Web.config 和 IIS 管理强制 HTTPS
      • 好的,如果您需要更多信息,请随时询问。这是我用于一些生产网站的设置,它工作正常。如果您不想仅使用虚假站点重定向到 HTTPS,您还可以使用 global.asax 文件并在 BeginRequest 事件中强制重定向到 HTTPS(如果您在同一服务器上有多个网站,它可能会变得混乱有很多重定向)。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-02
      • 2015-09-30
      • 1970-01-01
      • 2015-02-25
      • 2014-02-13
      • 1970-01-01
      • 2015-03-02
      相关资源
      最近更新 更多