IIS服务器下web.config文件配置https和www跳转方法

最近更新时间: February 7, 2025

在iis服务器下网站建设完成并且上线之后,我们还需要对网站进行安全设置,常见的比如给网站添加SSL证书,添加之后还需要把http跳转到https上面;同时我们还需要做www跳转,即把不带www的域名跳转到带www的域名,这样做一方面可以使页面网站网址更加安全规范,有利于搜索引擎的识别和收录,另一方面也可以避免多个网址导致网站权重分散。

IIS服务器下web.config文件配置https和www跳转方法

不同服务器对应的设置方法是不一样的,今天讲的是关于iis服务器环境下,通过修改web.config文件来实现网址https和www跳转,如果想要了解Apache下如何设置,可以点击查:Apache下.htaccess文件配置https和www跳转方法

这里采取的方法是在网站根目录新建或者修改web.config文件实现www和https重定向,适用性更强,具体方法如下:(如果原网站里面有web.config文件事先做好备份)

  1. 步骤一:带www和不带www的域名都解析到同一服务器IP地址。
  2. 步骤二:在IIS服务器中给网站安装SSL证书,并且带www和不带www的域名都需要绑定。
    域名绑定SSL证书
  3. 步骤三:在IIS服务器中安装”URL 重写”组件,下载地址:URL Rewrite Downloads
    URL 重写组件
    URL 重写组件下载

    注意:下载完成需要重启IIS服务器才会显示。

  4. 步骤四:在网站根目录的web.config文件(没有可以新建)中编辑或者添加跳转代码(也可以直接在”URL 重写”组件中添加跳转规则这里不再详述):

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    <system.webServer>
    <httpRedirect enabled="false" destination="https://www.域名.com" exactDestination="false"
    httpResponseStatus="Found" />
    <rewrite>
    <rules>
    <clear />
    <rule name="Towww" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
    <add input="{HTTP_HOST}" pattern="^域名.com$" />
    </conditions>
    <action type="Redirect" url="https://www.域名.com/{R:1}" />
    </rule>
    <rule name="ToHTTPSwww" enabled="true" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
    <add input="{HTTPS}" pattern="^ON$" />
    <add input="{HTTP_HOST}" pattern="^域名.com$" />
    </conditions>
    <action type="Redirect" url="https://www.域名.com/{R:1}" redirectType="Permanent" />
    </rule>
    <rule name="http to https" stopProcessing="true">
    <match url="(.*)" />
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
    <add input="{HTTPS}" pattern="^OFF$" />
    <add input="{HTTP_HOST}" pattern="^www.域名.com$" />
    </conditions>
    <action type="Redirect" url="https://www.域名.com/{R:1}" redirectType="Found" />
    </rule>
    </rules>
    </rewrite>
    </system.webServer>
    </configuration>

    附:web.config示例代码

需要注意:

  • 只有在IIS中安装了”URL 重写”组件之后,所有的跳转(重定向)代码配置才会生效。
  • 跳转规则有先后之分,比如先是不带www的域名跳转到带www的域名,然后是HTTP跳转到HTTPS域名。

常见问题:

  • 重定向代码设置后不生效?

    查看是否安装”URL 重写”组件,web.config文件书写格式是否正确,是否在网站根目录。

  • HTTP跳转到HTTPS正常,但是不带www的域名不能跳转到带www?

    检查跳转代码顺序是否正确,一般是www重定向在前面。

  • http://域名.com/ 能正常跳转到http://www.域名.com/但是https://域名.com/ 不能正常跳转到 https://www.域名.com/?

    检查IIS服务器上的网站是否同时绑定了https类型的带www和不带www的域名,如果没有绑定不带www的域名,那么https://域名.com/是不能正常访问的,所以就会导致不能正常跳转或者不带www的域名出现404错误

    域名绑定SSL证书
  • 不带www的域名打开是出现5XX错误?

    检查不带www的域名是否解析到了正确的服务器IP地址(一般和带www域名是一样的),这也会影响重定向到带www的域名。

版权声明©:希望对您会有所帮助;转载请注明出处。

文章Tags: ,

欢迎留言评论!

Your email address will not be published. Required fields are marked *

大简笔记微信公众号

欢迎关注微信公众号随时了解最新知识分享

E-mail: hellojack202102@gmail.com

Privacy Policy Sitemap

Copyright 2024 Dajian Biji All Rights Reserved.