IIS URL重写跳转到HTTPS和重定向到WWW
使用IIS部署网页时 想让用户访问https和www开头的网页
但是访问时需要手动输入www才能访问
这个时候就需要用URL重写来让http自动跳转到想让用户访问的网页
下载URL重写
https://www.iis.net/downloads/microsoft/url-rewrite#additionalDownloads
IIS没有URL重写的需要去微软官网根据需要的版本下载安装
操作步骤
http跳转https
安装完成后打开URL重写
选择添加规则
选择空白规则

规则名称可根据需要设定

请求的URL选择 与模式匹配
使用选择 正则表达式
模式框内输入 (.*)

条件内选择添加条件
条件输入内输入 {HTTPS}
检查输入字符串是否选择 与模式匹配
模式框内输入 ^OFF$

再添加一个规则
条件输入内输入 {HTTP_HOST}
检查输入字符串是否选择 与模式匹配
模式框内输入 ^(localhost)

另外一种方法,只需要保留 {HTTPS}
不添加 {HTTP_HOST}
重定向类型选择已找到(302)
操作类型选择 重定向
在重定向 URL: 内输入 https://{HTTP_HOST}/{R:1}
重定向类型选择永久(301)

完成后点击应用即可
最终web.config里显示的代码如下:
<rule name="http转https" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll">
<add input="{HTTPS}" pattern="off" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>
注意:如果只想作用服务器单个网站上,那就在IIS下面该网站的重写规则里添加即可,千万不要在总IIS下添加,不然所有网站都添加https了
注意:如果总服务器IIS下的重写规则 和 下面站点下添加的规则有 重叠,那么默认先走总服务器下的重写规则
重定向到WWW
选择添加规则
选择空白规则

规则名称可根据需要设定

请求的URL选择 与模式匹配
使用选择 正则表达式
模式框内输入 (.*)

条件内选择添加条件
条件输入内输入 {HTTP_HOST}
检查输入字符串是否选择 与模式匹配
模式框内输入 ^(?!www.)(.+..+)$

操作类型选择 重定向
在重定向 URL: 内输入 https://www.{C:1}/{R:1}
重定向类型选择永久(301)

完成后点击应用即可
最终web.config里显示的代码如下
<rule name="ADD WWW" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(?!www.)(.+..+)$" />
</conditions>
<action type="Redirect" url="http://www.{C:1}/{R:1}" />
</rule>
注意:1、经本人测试,这个需要在总的IIS重写模块下添加规则 才能生效,但如护卫神主机、宝塔等主机管理本地网页管理界面无法打开,需要禁用时才能打开,2、如果在单个网站下添加无法生效,
注意:如果总服务器IIS下的重写规则 和 下面站点下添加的规则有 重叠,那么默认先走总服务器下的重写规则