[荐]利用IIS虚拟主机做永久301重定向
今天site:nuodou.com 发现很多不带www的链接返回404,想想,可能是前段时间做了nuodou.com到yangjunwei.com的301重定向造成的!于是检查了一下并结合网络上的方法,发现如下301代码有个缺点:
<% Response.Status="301 Moved Permanently" Response.AddHeader "Location","https://yangjunwei.com" %>
这段代码很常用,但问题是链接 http://nuodou.com 能正常301重定向到 https://yangjunwei.com,但是其它内页等具体网址就不能301了,甚至基本的访问都不行,返回404代码,这时我们可以利用IIS做301重定向,具体方法如下:
第一步,在IIS里新建一个站点,设置主机头值域名为nuodou.com
第二步,在IIS中选中刚才建立的站点,右键,属性-->主目录-->选择重定向到-->输入要转向的域名https://yangjunwei.com,同时注意选中下面的“上面输入的准确URL”和“资源的永久重定向”然后点应用,就此301永久重定向就算做完了。
这里有本文最重要的一步:如果单纯在第二步中输入https://yangjunwei.com,仍然达不到想要的效果,这里我将在上述域名后添加“$S$Q”字符(不含双引号),这里才是本文的关键,很多301重定向,不能直接指到网站的具体的地址,通过搜索引擎来的都是具体的网站,如果采取一般的301重定向,就会出现很多网页直接跳转到新域名的对应的网站首页,这样就会丢失很多浏览者,对客户和搜索引擎都极其不友好,所以我们在域名后添加上$S$Q字符,URL就会直接跳转到网站内页,下面对其字符做一下具体解释。
$S 将请求的 URL 的后缀传递给新的 URL。后缀是用重定向的URL代替之后,初始URL中所保留的部分。
$Q 将初始 URL 中的参数(如 querystring 参数)传递至新的 URL,包括问号 (?)。
最后测试一下吧:http://nuodou.com/s 看看是不是成功跳转,而且是301的哦!