前言

以前部署网站的时候,都是通过代码来实现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重定向不生效的问题)的更多相关文章

  1. IIS 无法安装URL重写模块的解决办法 UrlReWrite (.NET`SQL技术交流 群号206656202)

    下载和安装URL Rewrite IIS8默认是没有安装URL重写工具的,必须要自己下载安装. 如果IIS上默认有安装Web平台安装程序,我们可以使用平台自动安装URL Rewrite重写工具,打开I ...

  2. Nginx使用SSL模块配置https

    背景 开发微信小程序,需要https域名,因此使用Nginx的SSL模块配置https 步骤 一.去域名管理商(如腾讯云.阿里云等)申请CA证书 二.在Nginx中配置,一般情况下域名管理商会提供配置 ...

  3. 亲测可行,AndroidStudio 究竟如何配置gradle

    一.你不想看到的 Gradle Build Running 话说在天朝当程序员也是很不容易的,不管是查阅资料还是下载东西,很多时候你会发现自己上网姿势不对,当然对大多数程序员来说,这都不是事儿.这次重 ...

  4. 【亲测】解决虚拟机CentOS7联网ping不通相关问题(通俗易懂)

    对于是使用windows操作系统的小伙伴来说(mac用户忽略),要学习一些技术可能需要使用Linux系统,自然就需要使用虚拟机安装Linux,当然现在很多主流的学习网站上的教程都会提供老师配置好的虚拟 ...

  5. Apache 使用ssl模块配置HTTPS(Centos7 httpd2.4.6)

    根据原文:http://blog.csdn.net/ithomer/article/details/50433363改编 Web服务器在默认情况下使用HTTP,这是一个纯文本的协议.正如其名称所暗示的 ...

  6. 解决微信小程序配置https不成功问题

    拿到一个微信小程序的项目,需要配置https安全链接(为什么必须使用https不再赘述),预想这个已经很成熟的流程,应该不会有太大问题,结果还真是出乎意料,竟然掉进一个大坑,折腾好久. 申请证书配置的 ...

  7. Mac 活动监视器 闪退 pro发热耗电过快问题解决,亲测可用解决

    该解决办法转载 Mac 活动监视器 闪退 pro发热耗电过快问题解决 这个月新买了mac,升级了系统,出现CPU发热,高负荷运转问题,始终找不到问题解决办法, ,这个过程太痛苦了,也不知道是什么原因. ...

  8. 解决table宽度设置不起作用,由于内容问题被撑开 亲测 完美解决

    1.在table 标签添加样式 table-layout: fixed; 必须设置width的值:<table style="table-layout: fixed"> ...

  9. 《亲测》nginx webscoket ssl conf配置示例

    非crt证书,用的pem,其中 http://localhost:5003 是你要转发到的站点网址 配置的就是 server { listen 80; server_name smarthome.yi ...

随机推荐

  1. 面向对象的封装(粘贴Markdown代码解决缩进问题)

    直接粘贴idea的代码会导致缩进错乱,建议先粘贴到记事本再粘贴到笔记!!! 1.先将属性私有化,再对外提供简单的接口可以访问内部.如set.get方法 2.set方法:修改年龄 public void ...

  2. 互联网研发效能之去哪儿网(Qunar)核心领域DevOps落地实践

    本文从业务目标角度出发,确定了开源+自建模式搭建 Qunar 研发工具链整体生态:通过 APPCODE 打通工具链,流程规范化自动化:多种手段+发布门禁助力质量提升:建立应用画像确定运维最小单元,可发 ...

  3. NC17857 起床困难综合症

    NC17857 起床困难综合症 题目 题目描述 21 世纪,许多人得了一种奇怪的病:起床困难综合症,其临床表现为:起床难,起床后精神不佳.作为一名青春阳光好少年,atm 一直坚持与起床困难综合症作斗争 ...

  4. REST 表现层状态转化

    1.REST是什么? 1) REST:即 Representational State Transfer.(资源)表现层状态转化.是目前最流行的一种互联网软件架构.它结构清晰.符合标准.易于理解.扩展 ...

  5. 【RocketMQ】消息的拉取

    RocketMQ消息的消费以组为单位,有两种消费模式: 广播模式:同一个消息队列可以分配给组内的每个消费者,每条消息可以被组内的消费者进行消费. 集群模式:同一个消费组下,一个消息队列同一时间只能分配 ...

  6. eclipse调用MySQL数据库的方法

    今天来总结一下使用如何使用eclipse调用MySQL数据库的数据. 一.设置eclipse 我们首先来设置一下eclipse. 在下部的Servers中右键选择new,选择server 之后在新弹出 ...

  7. mysql语法使用详细代码版

    mysql 1.什么是数据库 数据库:(DB,DataBase) 作用:用来存储数据,管理数据.Txt,Excel,word是在数据库出现之前存储数据的. 概念:数据仓库,安装在操作系统上的软件. 数 ...

  8. 算法竞赛进阶指南 0x52 背包

    背包问题是线性背包中的一类重要问题. 0/1背包 模型: 给定N个物品,每一个物品具有两种属性,一个是体积 \(v_i\) ,另一个是容积 \(w_i\) . 有一个容积为M的背包,求一种方案,使得选 ...

  9. 2537-springsecurity系列--关于session的管理2-session缓存和共享

    版本信息 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring ...

  10. mysql 跨库事务XA

    前一段时间在工作中遇到了跨库事务问题,后来在网上查询了一下,现在做一下整理和总结. 1.首先要确保mysql开启XA事务支持 SHOW VARIABLES LIKE '%XA%' 如果innodb_s ...