AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 893315
Accepted
userSteve
userSteve
Asked: 2018-01-22 03:50:22 +0800 CST2018-01-22 03:50:22 +0800 CST 2018-01-22 03:50:22 +0800 CST

在 IIS 中将所有 HTTP 重定向到 HTTPS 的最佳方法

  • 772

我们希望我们的网络服务器 (IIS 10) 上的所有站点都强制执行 SSL(即将 HTTP 重定向到 HTTPS)。

我们目前在每个站点上都“需要 SSL”,并设置一个403 error处理程序来执行302 redirect该特定站点的 https 地址。

这很好用。但是对于每个站点来说都是一件痛苦的事情,人为错误的空间很大。

理想情况下,我想301 redirect在所有人HTTP://*上建立一个永久的HTTPS://*

在 IIS 中是否有一种简单的方法可以做到这一点?

iis
  • 2 2 个回答
  • 185804 Views

2 个回答

  • Voted
  1. Best Answer
    sippybear
    2018-01-24T19:42:17+08:002018-01-24T19:42:17+08:00

    IIS7+ 的 IIS URL 重写模块 2.1 可能是您的朋友。该模块可以从IIS URL Rewrite下载。使用 URL 重写模块和URL 重写模块 2.0 配置参考解释了如何使用该模块。

    安装模块后,您可以使用 IIS 管理器创建主机范围的重定向。选择URL Rewrite、Add Rule(s)...和Blank rule。

    名称:
    重定向到 HTTPS

    匹配 URL
    请求的 URL: Matches the Pattern
    使用: Wildcards
    模式: *
    忽略大小写:选中

    条件
    逻辑分组: Match Any
    条件输入:{HTTPS}
    检查是否输入字符串: Matches the Pattern
    模式: OFF
    忽略大小写:选中
    跨条件跟踪捕获组:未选中

    服务器变量
    留空。

    操作
    操作类型: Redirect
    重定向 URL: https://{HTTP_HOST}{REQUEST_URI}
    附加查询字符串:未选中
    重定向类型: Permanent (301)

    应用规则并运行 IISReset(或单击 IIS 管理器中的重新启动)

    或者,在安装模块后,您可以修改 applicationHost.config 文件,如下所示:

    <system.webServer>
      <rewrite>
        <globalRules>
          <rule name="Redirect to HTTPS" enabled="true" patternSyntax="Wildcard" stopProcessing="true">
            <match url="*" ignoreCase="true" negate="false" />
            <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
              <add input="{HTTPS}" ignoreCase="true" matchType="Pattern" negate="false" pattern="OFF" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" />
          </rule>
        </globalRules>
      </rewrite>
    </system.webServer>
    
    • 113
  2. Fallen Angel
    2018-06-11T09:46:30+08:002018-06-11T09:46:30+08:00

    我的研究表明,这可能是重定向的更好方法:

    <rewrite>
        <rules>
            <rule name="http to https" stopProcessing="true">
                <match url="(.*)" />
                <conditions>
                    <add input="{HTTPS}" pattern="^OFF$" />
                </conditions>
                <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
            </rule>
        </rules>
    </rewrite>
    
    • 7

相关问题

  • 2003 Server企业版不能运行ASP.NET应用程序?

  • 启用集成 Windows 身份验证时,ASP(经典)在哪个帐户下运行?

  • 是否有一种简单的方法可以生成有关 IIS 中“死”文件的报告?

  • IIS 7 中的 URL 重写

  • 对于 ASP.Net 应用程序,Windows 64 位相对于 32 位的主要优势是什么?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve