很多伙伴,都可能会遇到一个问题,希望example.com
和www.example.com
都可以访问到自己的网站,而且还希望在访问example.com
后可以301重定向到www.example.com
,那么这个效果在windows的IIS上如何实现呢?
下面我们就来一步一步的演示一下:
首先,你的两个域名(也就是example.com
和www.example.com
)应该都解析到这个服务器上,并且在同一个站点上绑定好他们。
来到微软官方:https://www.iis.net/downloads/microsoft/url-rewrite ,
下载,后安装即可。 (首先,要确保你已经安装好了IIS。)
然后打开IIS找到你之前的example.com
,你应该可以发现 URL Rewrite
已经出现了。
将URL Rewrite
打开
并点击右上方(标记1处) Add Rule(s)...
,选择(标记2处) Blank rule
,点击(标记3处)【确定】按钮。
点击【确定】后,会弹出
请按照上图方式填写,就可以实现301跳转效果啦!
下面让我来讲讲这些内容中,重点内容的设置和含义:
Name:随便给你的规则取个名称。
Requested URL: 请求的URL。我们选择 Matches the Pattern
翻译为 与模式匹配
。
Using : 使用什么样的方式。我们选择 通配符方式 Wildcards
。
Pattern: 模式。我们要在这里写表达式了。他与Requested URL
、Using
是一个组合,主要表达的是:你可以使用通配符的方式来匹配URL,并获取匹配内容。这里我们添加的*号,也就是我们将获得域名后的所有URL字符。
Condittions:条件。我们要在这里面添加:
这里面的意思就是说:当域名,不满足 www.example.com
这样的条件时,触发下面的 Action
。
Action type: 因为我们要实现 301跳转,所以我们选择 Redirect
重定向。
Action Properties - Redirect URL: 指定跳转到哪个URL上,我们设置 http://www.example.com/
,后面的{R:1}
就是将之前匹配获取到的,域名后面的所有URL字符,追加到 http://www.example.com/
后。也就是说,原来的连接 http://example.com/main/list.html
跳转后 http://www.example.com/main/list.html
。域名后面的字符还在。
Redirect type: 一定要选择 Permanent(301)
。
重启你的IIS服务。
当我们设置了规则后,你发现发并没有生效,这很可能是你的其他规则,先行执行,发生了影响。所以我建议你,301规则置顶。
好了,访问你的example.com
看看效果吧!
如果你的域名可以外网访问:
你可以来到:http://www.ab173.com/zhanzhang/getheader.php ,输入你设置好的域名,查看是否是以301状态跳转。