IIS通过URL重写将www的域名301到不带www的域名和强制使用https访问网站

风雪飞雨 阅读:285 2025-04-10 22:01:06 评论:0

其实强制非www域名和https博主以前都是在做域名解析的时候做的DNS解析来实现的,可无奈在几天前被阿里云坑了一波之后,由于博主修改了一些DNS的配置,导致现在未备案域名不能在DNS级别做301重定向了,所以博主无奈之下只有研究在服务器级别做301重定向了,也把这次经历记在这里,方便大家有用到的时候便于参考。

http重定向到https

1.首先,我们需要在服务器上给IIS安装URL Rewrite这个插件和导入你的SSL证书。

2.打开“IIS管理器”控制台,在左侧菜单中选择要应用重定向的网站,找到URL重写,双击进去:



3.单击右侧菜单中的“添加规则”。

4.在“入站”部分中选择“空白规则”,然后按“确定”:



5.输入任何规则名称,你知道是什么意思就好了,比如“重定向到https”。

6.在“匹配URL”部分中:

– 在“请求的URL”下拉菜单中选择“与模式匹配”
– 在“使用”下拉菜单中 选择“正则表达式”
– 在“模式”部分输入以下模式:“(.*)“
– 选中”忽略大小写“框



7.在“条件”部分中,选择“逻辑分组”下拉菜单下的“全部匹配”,然后按“添加”。

8.在提示窗口中:

– 输入“{HTTPS}”作为条件输入
– 从下拉菜单中选择“与模式匹配”
– 输入“^OFF$”作为模式
– 按“确定”

– 输入“{HTTPS_HOST}”作为条件输入
– 从下拉菜单中选择“与模式不匹配”
– 输入“^(localhost)”作为模式
– 按“确定”



9.在“操作”部分中,选择“重定向”作为操作类型,并为“重定向URL”指定以下内容:

https://{HTTP_HOST}/{R:1}

10.选中“附加查询字符串”框。

11.选择您选择的重定向类型。整个“操作”部分应如下所示:



注意:可以在该菜单中选择4种重定向规则的重定向规则:
– 永久(301) – 在这种情况下的首选类型,它告诉客户端站点的内容永久移动到HTTPS版本。有利于SEO,因为它为您的HTTPS网站带来了所有流量,对其在搜索引擎中的排名产生了积极影响。
– 找到(302) – 仅当您将某些页面的内容暂时移动到新地点时才应使用*。这样SEO流量有利于先前内容的位置。通常不建议将此选项用于HTTP / HTTPS重定向。
– 请参阅其他(303) – GET请求的特定重定向类型。不推荐用于HTTP / HTTPS。
– 临时(307) – 302重定向类型的HTTP / 1.1后继。不推荐用于HTTP / HTTPS。

12.单击“操作”菜单右侧上方的“应用”即可。

www重定向到不带www

1.按刚才的套路,先做上面的步骤1-7。

2.条件配置如下:

-条件输入:{HTTP_HOST}

-检查输入的字符串是否:与模式匹配

-模式:^www\.(.+\..+)$



3.操作部分配置如下“重定向URL”指定以下内容:

https://{HTTP_HOST}/{R:1}



4.单击“操作”菜单右侧上方的“应用”即可。

太麻烦了?这有现成的

上面做那么多操作,其实就是生成了一段配置,放到了我们网站程序的web.config

<rewrite xdt:Transform="Insert">
    <rules>
        <rule name="重定向到https" enabled="true" stopProcessing="true">
            <match url="(.*)" />
            <conditions>
                <add input="{HTTPS}" pattern="^OFF$" />
                <add input="{HTTPS_HOST}" pattern="^(localhost)" negate="true" />
            </conditions>
            <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" appendQueryString="true" redirectType="Permanent" />
        </rule>
        <rule name="强制重定向到不带www的顶级域名" enabled="true" stopProcessing="true">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAny">
                <add input="{HTTP_HOST}" pattern="^www\.(.+\..+)$" />
            </conditions>
            <action type="Redirect" url="https://{C:1}/{R:1}" appendQueryString="true" redirectType="Permanent" />
        </rule>
    </rules>
</rewrite>

我们只需要将上面的代码放到web.config中的system.webServer配置节下保存即可。


标签:SSLIIS
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜