IIS 实现http重定向https(亲测有效:解决URL重写模块配置https重定向不生效的问题)
前言
以前部署网站的时候,都是通过代码来实现http重定向https,最近在部署个人网站的时候,突发奇想可不可通过IIS来实现无代码的重定向呢?
在一番操作猛如虎的搜索引擎操作后,发现只有google浏览器能实现重定向,在反复对照网络教程后陷入了深深的自我怀疑。最后不得已只能一步一步来解析到底哪个地方出现了问题,现在将我重定向的步骤分享给大家。
实际操作
(一)下载IIS的“URL重写”插件
提示:这个插件只支持 IIS 7, IIS 7.5, IIS 8, IIS 8.5, IIS 10
第一种安装:通过IIS中的“Web平台安装程序”。
注意:如果IIS中没有这个安装程序,就只能采用第二种安装方式了。
首先:点击IIS的左侧主页,进入主页功能视图后再点击“Web平台安装程序”

接下来:进入“Web平台安装程序”后,先点击“产品”标签,然后在搜索框中输入“url”回车进行搜索

最后:在搜索结果中就能看见“URL重写工具”安装包了,点击安装就可以了(因为我已经安装过了就显示的“已安装”)

第二种安装:通过微软官网进行下载
microsoft url-rewrite链接地址:https://www.iis.net/downloads/microsoft/url-rewrite
(二)进行配置
通过上述安装步骤,如果安装成功,就能在主页功能视图中看见“URL重写”功能模块了。

第一步:进入功能界面后,点击右侧的“添加规则”

第二步:在弹出的对话框中,点击“空白规则”

第三步:进入入站规则编辑页面
1、名称部分
随意填写(我这儿因为是已经应用的规则,所以输入框是灰色的,新建的时候是白色的可以输入的)
2、匹配URL部分进行如下操作
| 序号 | 输入位置 | 输入内容 |
|---|---|---|
| 1 | 请求的URL | 选择“与模式匹配” |
| 2 | 使用 | 选择“正则表达式” |
| 3 | 模式 | 输入“^((https |
| 4 | 忽略大小写勾选框 | 勾上 |
3、条件部分的逻辑分组:选择“全部匹配”,选中后点击“添加”按钮,然后在弹出的对话框中进行如下操作
| 序号 | 输入位置 | 输入内容 |
|---|---|---|
| 1 | 条件输入 | 输入“{HTTPS} ” |
| 2 | 检查输入字符串是否 | 选择“与模式匹配” |
| 3 | 模式 | 输入“^OFF$” |
| 3 | 忽略大小写勾选框 | 勾上 |
备注:这个条件的作用是为了屏蔽已经带有https的链接再进行重定向。

提示:在匹配URL部分操作完成后可以点击“测试模式”按钮,在弹出的对话框中的“要测试的输入数据”位置输入“http://www.test.org/first/second?one=text”或者其他任意你想测试的网址,就能看见我们刚输入的正则表达式将网址如何进行了拆分。其中的{R:3}就是我们希望获取的部分。

4、操作部分的逻辑分组:选择“全部匹配”,选中后点击“添加”按钮,然后在弹出的对话框中进行如下操作
| 序号 | 输入位置 | 输入内容 | 备注 |
|---|---|---|---|
| 1 | 操作类型 | 选择“重定向” | |
| 2 | 操作属性-重定向URL | 输入“https://{HTTP_HOST}/{R:3}” | 特别提醒:{R:3}就是从匹配URL部分的正则表达式来的 |
| 3 | 操作属性-附加查询字符串勾选框 | 勾上 | |
| 4 | 操作属性-重定向类型 | 选择“永久(301)” | 如果没有其他考量,建议http重定向https这种需求选择永久 |

(三)确认后应用配置的规则
在上述操作完成后,点击右侧“应用”,然后进入浏览器输入http测试就能看到重定向的效果了(提前安装SSL证书哦_)。

写在最后
一开始是想跟着网上的教程抄,省事儿。没想到最后还是要自己一步一步来学着如何配置。
如果有小伙伴跟着以上内容进行配置后(且清除了浏览器缓存)仍旧存在不生效的情况,可以在评论区留言。
IIS 实现http重定向https(亲测有效:解决URL重写模块配置https重定向不生效的问题)的更多相关文章
- IIS 无法安装URL重写模块的解决办法 UrlReWrite (.NET`SQL技术交流 群号206656202)
下载和安装URL Rewrite IIS8默认是没有安装URL重写工具的,必须要自己下载安装. 如果IIS上默认有安装Web平台安装程序,我们可以使用平台自动安装URL Rewrite重写工具,打开I ...
- Nginx使用SSL模块配置https
背景 开发微信小程序,需要https域名,因此使用Nginx的SSL模块配置https 步骤 一.去域名管理商(如腾讯云.阿里云等)申请CA证书 二.在Nginx中配置,一般情况下域名管理商会提供配置 ...
- 亲测可行,AndroidStudio 究竟如何配置gradle
一.你不想看到的 Gradle Build Running 话说在天朝当程序员也是很不容易的,不管是查阅资料还是下载东西,很多时候你会发现自己上网姿势不对,当然对大多数程序员来说,这都不是事儿.这次重 ...
- 【亲测】解决虚拟机CentOS7联网ping不通相关问题(通俗易懂)
对于是使用windows操作系统的小伙伴来说(mac用户忽略),要学习一些技术可能需要使用Linux系统,自然就需要使用虚拟机安装Linux,当然现在很多主流的学习网站上的教程都会提供老师配置好的虚拟 ...
- Apache 使用ssl模块配置HTTPS(Centos7 httpd2.4.6)
根据原文:http://blog.csdn.net/ithomer/article/details/50433363改编 Web服务器在默认情况下使用HTTP,这是一个纯文本的协议.正如其名称所暗示的 ...
- 解决微信小程序配置https不成功问题
拿到一个微信小程序的项目,需要配置https安全链接(为什么必须使用https不再赘述),预想这个已经很成熟的流程,应该不会有太大问题,结果还真是出乎意料,竟然掉进一个大坑,折腾好久. 申请证书配置的 ...
- Mac 活动监视器 闪退 pro发热耗电过快问题解决,亲测可用解决
该解决办法转载 Mac 活动监视器 闪退 pro发热耗电过快问题解决 这个月新买了mac,升级了系统,出现CPU发热,高负荷运转问题,始终找不到问题解决办法, ,这个过程太痛苦了,也不知道是什么原因. ...
- 解决table宽度设置不起作用,由于内容问题被撑开 亲测 完美解决
1.在table 标签添加样式 table-layout: fixed; 必须设置width的值:<table style="table-layout: fixed"> ...
- 《亲测》nginx webscoket ssl conf配置示例
非crt证书,用的pem,其中 http://localhost:5003 是你要转发到的站点网址 配置的就是 server { listen 80; server_name smarthome.yi ...
随机推荐
- RPA供应链管制单修改机器人
背景:供应链环节中,研发物料时而因为市场缺货等原因无法采购,资材部需登入系统修改物料管制单. 操作流程:登录PDM系统中读取数据.登录ERP系统中更新数据. 人工操作:每日耗时3.5小时,出现一定比例 ...
- 搭建uipath
我对windows也不太熟,也是第一次安装Uipath Orchestrator,希望有问题指出一起交流,可以留言,Uipath中文qq交流群:4656303241. 下载镜像 windows ser ...
- RS485通信电路
RS485由RS232和RS422发展而来,弥补了抗干扰能力差.通信距离短.速率低的缺点,增加了多点.双向通信能力,即允许多个发送器连接在同一条主线上,同时增加了发送器的驱动能力和冲突保护特性,扩展了 ...
- skip-host-cache skip-name-resolve
在mysql 的data 文件夹下 生成了一个.err的文件,打开发展,经常有人访问这个,服务器部署在腾讯云上. 2017-05-23 0:49:04 2996 [Warning] IP addres ...
- SpringBoot接口 - 如何生成接口文档之非侵入方式(通过注释生成)Smart-Doc?
通过Swagger系列可以快速生成API文档,但是这种API文档生成是需要在接口上添加注解等,这表明这是一种侵入式方式: 那么有没有非侵入式方式呢, 比如通过注释生成文档? 本文主要介绍非侵入式的方式 ...
- 记一次react-hooks项目获取图表图片集合并生成pdf的需求
需求: 获取子组件中所有图片的dom元素并生成图片,再把生成的图片转化为pdf下载 难点 众所周知,react是单向数据流,倡导f(data)⇒ UI的哲学, 并不建议过多直接操作dom,但是生成图片 ...
- RK3568开发笔记(四):在虚拟机上使用SDK编译制作uboot、kernel和buildroot镜像
前言 上一篇搭建好了ubuntu宿主机开发环境,本篇的目标系统主要是开发linux+qt,所以需要刷上billdroot+Qt创建的系统,为了更好的熟悉原理和整个开发过程,选择从零开始搭建rk35 ...
- PhoneBean实体类的封装和map输出键值对的设置
之前我们写好了bean类型.现在我们再看看这个需求中,map和reduce各自的流程. Map阶段: 字段切分以后保留如下字段:以第一行为例,就保留13726230503112 2481 24681 ...
- Selenium自动化测试之Selenium IDE
简介 Selenium IDE 是实现Web自动化的一种便捷工具,本质上它是一种浏览器插件.该插件支持Chrome和Firefox浏览器,拥有录制.编写及回放操作等功能,能够快速实现Web的自动化测试 ...
- C#委托的最简单入门和理解
委托是.net语言中非常重要的一个概念,初学不太好理解也没有关系的,在一次一次的攻关后会领会到委托的精妙,可以说 .net 没有委托就没有后面更高级的事件,异步多线程等等特性的形成可能.所以一定要 ...