IIS7.5下301重定向的设置方法(及伪静态后301重定向出错案例)
作者:
一、301重定向实施:
我们网站(www.b.com)原来的域名是a.com,明显差很多,换了域名之后,要做的第一件事自然就是301重定向。
提醒一点:即使你不是换域名,也应该考虑把“b.com”301重定向至“www.b.com”。
每个人的环境不一样,因为我们是用云服务器,所以我们实施301重定向相对简单,只要在IIS里直接设置就行了。
但在实施之前,一定要记住:在IIS中为各域名建立独立的站点,做好相应绑定。
比如,你要把“b.com”301重定向到”www.b.com”,就要分别建两个站点,并独立绑定,然后,再在“b.com”的站点上做重定向设置。
下面,是实施步骤
第一步:
选择“HTTP重定向”
第二步:
1、勾选“将请求重定向到此目标”;2、输入目标域名;3、选择“301永久”即可。如下图:
第三步:
自然是验证一下是否设置成功:
1、可以通过下面的工具,输入301重定向前的原域名或网址,看下返回的状态码是否是301;http://tool.chinaz.com/pagestatus/
2、输入301重定向前的原域名或网址,设置正确的话,应转到新域名下相应的网页。(我的问题,就出在这里)
二、伪静态后301重定向出错:
问题:
我在这里碰到了问题,我们伪静态后的网址格式是类似这样的,某体检套餐:http://www.b.com/pkg-detail/ok327a455b6ed8c;
结果301后,访问原地址http://www.a.com/pkg-detail/ok327a455b6ed8c;
却全部变成了原动态网址,如“/pkg/detail.aspx?xxxxxxx”,而且参数全乱,虽然页面返回的状态是301,正确的,但内容已经完全错误,或者是空内容,甚至404。
原因:
经过排查,原来,我在建新域名站点时,直接复制了原来的目录。
原站点的内容仍完全保留,而我们伪静态用的是Global方案,这个原站点的Global.aspx文件在作祟;
估计是,访问时,网址已经先被原站点的Global.aspx处理,后再重定向到新站点,又被新站点的Global.aspx处理了一次,故出错。 解决:
解决很简单了: 把原站点的Global.aspx,或者清空文件,只留个web.cnfig,搞定。