IIS 10 网站设置 301 永久重定向

更新时间:2022-04-05 19:10:53 来源: 作者: 浏览849次 文字大小:

一、前言

今天水缘文学网,安装了 SSL 证书,实现了全站 https 协议访问。由此产生一个新问题,在浏览器地址栏中直接输入网站域名,默认是使用 http 协议访问的,除非指定 https 协议访问,也就是全网址,类似这样 https://www.sywxw.cc才能正常访问。所以,要把用 http 协议访问的请求,全部 301 永久重定向到 https 协议的网站。还要把用 https 协议访问的 https://sywxw.cc 不带 www 的请求,也 301 永久重定向到带 www 的主网址 https://www.sywxw.cc。最终效果如下:

请求端口HTTP 重定向目标
http://www.sywxw.cc80永久(301)https://www.sywxw.cc
http://sywxw.cc80永久(301)https://www.sywxw.cc
https://sywxw.cc443永久(301)https://www.sywxw.cc

为了网站 SEO 和 搜索引擎更加友好,对已经收录的网址,类似这样的http://域名/xxx/sss.html?a=b的网址,要带网址参数重定向,效果类似这样https://域名/xxx/sss.html?a=b,而不是重定向到首页。

二、IIS 10 网站设置

1、在 IIS 中,添加网站,保证网站能正常响应请求。

1.jpg

2、在网站上鼠标右键,选择“编辑绑定”,添加网站绑定。

2.jpg

3、左侧选中网站,右侧选择“HTTP 重定向”双击。

3.jpg

4、设置“HTTP 重定向”。勾选“将请求重定向到此目标”,并填写目标地址。勾选“将所有请求重定向到确切的目标(而不是相对于目标)”。状态代码选择“永久(301)”。

关于目标地址最后面的$S$Q,这是 IIS 重定向的参数。解释如下:

$S- 将请求的 URL 的后缀传递给新的 URL。后缀是用重定向的 URL 代替之后,初始 URL 中所保留的部分。如果未设置 EXACT_DESTINATION 标志,则结果目标 URL 的名称将具有所请求文件的名称(作为文件夹名称)以及文件名本身。

$Q- 将初始 URL 中的参数(如 querystring 参数)传递至新的 URL,包括问号 (?)。

IIS 重定向的参数还有很多,这里只介绍这两个最常用的,如果不加$S$Q,则重定向到指定地址,如果加上$S$Q,则重定向到指定地址 + 请求的 URL 的后缀 + URL 中的参数,也就是文章前面提到的,为了网站 SEO 和 搜索引擎更加友好,所作的操作。

4.jpg

5、记得要保存设置哦,到此设置完毕。

三、通过 web.config 配置文件设置

最后,你会发现,通过上面的 IIS 设置,在网站目录下多了一个 web.config 配置文件,如果这个文件已存在,则会增加配置项。配置内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

  <system.webServer>

       <httpRedirect enabled="true" destination="https://www.sywxw.cc$S$Q" exactDestination="true" httpResponseStatus="Permanent" />

   </system.webServer></configuration>

其实,通过 web.config 配置文件,也可以设置 301 永久重定向。IIS 10 会默认加载网站根目录的 web.config 配置文件,假如你设置 IIS 10 默认不加载,那还需上面的 IIS 设置。

(完)


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    文章评论

    评论

    帐  号: 密码: (新用户注册)
    验 证 码:
    表  情:
    内  容:

    热门文章