18143453325 在线咨询 在线咨询
18143453325 在线咨询
所在位置: 首页 > 营销资讯 > 建站知识 > IIS通过URL重写将www的域名301到不带www的域名和强制使用https访问网站

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

时间:2023-02-19 17:28:01 | 来源:建站知识

时间:2023-02-19 17:28:01 来源:建站知识

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

无论是出于安全还是搜索引擎优化的原因,我们都希望网站在访问多个类似的域名时,最好能重定向到统一的域名,比如博主的网站可以通过以下这些域名来访问:

http://masuit.net

http://www.masuit.net

http://www.masuit.com

http://masuit.com

http://*.http://masuit.com

https://www.masuit.com

https://*.http://masuit.com

https://masuit.com

但是,我并不希望访问上面这些不同域名出现相同的页面,这对SEO来说也不友好,所以我们需要将上面这些地址都统一的永久重定向到https://masuit.com,那么怎么来实现呢?

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配置节下保存即可。

转自原文:



关键词:强制,使用,访问,通过

74
73
25
news

版权所有© 亿企邦 1997-2025 保留一切法律许可权利。

为了最佳展示效果,本站不支持IE9及以下版本的浏览器,建议您使用谷歌Chrome浏览器。 点击下载Chrome浏览器
关闭