在Global.cs中
protected void Application_BeginRequest(object sender, EventArgs e)
{
string strUrl = Request.Url.ToString().Trim().ToLower();
if (strUrl.Contains("http://bianyun.net"))
{
Response.RedirectPermanent(strUrl.Replace("http://bianyun.net", "http://www.bianyun.net"));
}
}
ASP.NET MVC4 增加了一个RedirectPermanent方法,该方法同样是重定向,但生成的HTTP响应状态不是上边所演示的302,而是301(永久跳转),301 是对搜索引擎最友好的重定向方式。你网站主域http://www.bianyun.net ,当人们访问http://bianyun.net 这个URL时,你就把他们重定向到http://www.bianyun.net,第一可以增加用户体验、有些人习惯输入网址带www、有些人不带www,做了301重定向处理都能友好的返回访问结果。第二:当搜索引擎爬到site:bianyun.net这个网址时,如果它不能很好地跟随重定向,它将认为http://bianyun.net请求下没有内容的,所以这个页面的排名将会非常靠后。大家都知道一级域名收录量要比二级域名收录量的好。因为这个是包含关系。
当然301永久重定向可以做域名更换或者Url按照一定规则批量改变等一些有利自身网站权重的事情,如果我们把一个地址采用301 跳转方式跳转的话,搜索引擎会把老地址的PageRank等信息带到新地址,同时在搜索引擎索引库中彻底废弃掉原先的老地址。
关于重定向是一级域名重定向二级还是二级重定向一级问题没有纠结的必要。我曾经不知道在那个网上看的说谷歌提倡使用不带www的。但是用户习惯www的输入习惯。这个没有定性结论。网站牛逼啥也一样。这个这里就不多提了。
补充:IIS做301永久重定向处理
(iis-找到网站-属性-主目录-选择重新定向到URL(U)-勾选 资源的永久重定向 )但发现一个问题,只有首页,或者内页,不带?参数的页面可以正常301重定向,而带有参数的内页,都丢失了参数。这样肯定不行,因为很多内页收录了。
找了半天终于找到了解决办法:
iis-找到网站-属性-主目录-选择重新定向到URL(U)(http://www.bianyun.net$S$Q)-勾选 资源的永久重定向和上面输入的准确URL(U)。
OK,这样设置后,不管是首页,还是内页全站都有了301重定向了。