在 IIS 中设置 HTTP/HTTPS 复位向
一旦 SSL 证书已安装,您的网站仍然可以通过常规不安全的 HTTP 连接访问。要安全地连接,访问者必须在浏览器中手动指定 https:// 前缀,当他们输入您网站的地址时。
为了强制您的网站使用安全连接,有必要设置某个 HTTP/HTTPS 复位向规则。这样,任何输入您网站的链接(如 'yourdomain.com')的用户将被复位向到 'https://yourdomain.com' 或 'https://www.yourdomain.com'(根据您的选择),使得服务器与客户端之间的流量加密。
以下是设置 IIS HTTPS 复位向的步骤:
- 下载并安装 'URL Rewrite' 模块。
- 打开 'IIS 管理员' 控制台,在左侧菜单中选择您想应用复位向的网站:

- 双击 'URL Rewrite' 图标。
- 在右侧菜单中单击 'Add Rule(s)'。
- 在 'Inbound' 部分中选择 'Blank Rule',然后按 'OK':

- 输入您希望的任何规则名称。
- 在 'Match URL' 部分:
- 在 'Requested URL' 下拉菜单中选择 'Matches the Pattern'
- 在 'Using' 下拉菜单中选择 'Regular Expressions'
- 在 'Match URL' 部分中输入以下模式:'(.*)'
- 勾选 'Ignore case' 框
- 在 'Conditions' 部分,选择 'Match all' 在 'Logical Grouping' 下拉菜单中,然后按 'Add'。
- 在弹出的窗口中:
- 输入 '{HTTPS}' 作为条件输入
- 从下拉菜单中选择 'Matches the Pattern'
- 输入 '^OFF$' 作为模式
- 按 'OK'
- 在 'Action' 部分,选择 'Redirect' 作为动作类型,并为 'Redirect URL' 指定以下内容:
https://{HTTP_HOST}{REQUEST_URI}
- 勾选 'Append query string' 框。
- 选择您选择的复位向类型。整个 'Action' 部分应如下所示:

- 在 'Actions' 菜单的右侧单击 'Apply'。
注意:在该菜单中有 4 种可以选择的复位向类型:
- 永久(301)- 在这种情况下首选的类型,告知客户该网站内容已永久转移到 HTTPS 版本。对 SEO 有好处,因为它将所有流量引导到您的 HTTPS 网站,对其在搜索引擎中的排名产生积极影响。
- 发现(302)- 仅在您将某些页面的内容*临时*移动到新位置时使用。这样 SEO 流量会对之前内容的位置有利。这个选项通常不建议用于 HTTP/HTTPS 复位向。
- 其他查看(303)- 专门用于 GET 请求的特定复位向类型。不建议用于 HTTP/HTTPS。
- 临时(307)- HTTP/1.1 的 302 复位向类型的后继者。不建议用于 HTTP/HTTPS。
可以通过访问您网站的 http:// 指定的 URL 来检查 IIS 复位向。为确保您的浏览器显示的不是网站的缓存版本,可以使用浏览器的匿名模式。
规则已在 IIS 中创建,但网站仍未复位向到 https://
通常,复位向规则会写入网站的文文件根目录中的 web.config 文件。如果出于某种原因复位向不起作用,请确保 web.config 文件存在,并检查它是否包含相应的规则。
要做到这一点,请遵循以下步骤:
- 在 IIS 的网站列表中,右键单击您的网站。选择 'Explore' 选项:

- 'Explore' 将打开该站点的文文件根目录。检查是否有 web.config 文件。
- web.config 文件必须包含以下代码块:
< configuration >
< system.webServer >
< rewrite >
< rules >
< rule name="HTTPS force" enabled="true" stopProcessing="true" >
< match url="(.*)" / >
< conditions >
< add input="{HTTPS}" pattern="^OFF$" / >
< /conditions >
< action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" / >
< /rule >
< /rules >
< /rewrite >
< /system.webServer >
< /configuration > - 如果 web.config 文件缺失,您可以创建一个新的 .txt 文件,将上述代码放入其中,然后保存并重命名文件为 web.config。