MVC 使用Response.Redirect页面301重定向

在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重定向了。

时间: 2024-10-08 22:35:26

MVC 使用Response.Redirect页面301重定向的相关文章

【转】Server.Transfer页面转向和Response.Redirect页面转向差异

/*自己总结*/ Response.Redirect可以转向本地页面和外链页面 Server.Transfe只能转向本地页面 /*原文摘要*/ Response是叫浏览器去重新转向到指定的网页,而Server自然是发生在服务器端为主了,因此会有以下区别: 1. Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则十分灵活:2. Server.Transfer可以将页面参数方便传递到指定页面:3. 使用时,Server.Transfer跳到别的页

详解301重定向及实现方法

一.什么是301重定向 301重定向(或叫301跳转.301转向)是用户或搜索引擎蜘蛛向网站服务器发出访问请求时,服务返回的HTTP数据流中头信息(header)部分状态码的一种,表示本网址永久性转移到另一个地址.其他常见的状态码还包括:200(表示一切正常):404(网页不存在):302(临时性转向):500 (内部程序错误): 除了301转向,网址转向还有其他方法,如302转向.JavaScript转向.PHP/ASP/CGI程序转向.Meta Refresh等. 301重定向对搜索引擎优化

Server Transfer()和Response.Redirect()的使用

一.Server Transfer() Server.Transfer:对于当前请求,终止当前页的执行,并使用指定的页url路径来开始执行一个新页. 1. Server.Transfer只能够转跳到本地虚拟目录指定的页面,而Response.Redirect则十分灵活: 2. Server.Transfer可以将页面参数方便传递到指定页面: 3. 使用时,Server.Transfer跳到别的页面后,浏览器显示的地址不会改变,有时反而会造成误会,当然也有些场合需要这样的效果: 4. Server

Server.Transfer 和 Response.Redirect 用法区别

在ASP.NET中,在后台传值方式目前大多都是用 Response.Redirect("页面地址") 来重定向页面的,但是现在还有一种方式也可以达到重定向页面的作用,而且在某些时刻会起到一种很棒的效果,那就是使用 Server.Transfer("页面地址") 来重定向地址. 现在我们来详细了解一下这两种重定向页面地址的用法和区别: Response.Redirect :Response.Redirect 会将地址输出至浏览器,执行重定向操作.但是请注意,在程序执行

重定向语句Response.Redirect()方法与Response.RedirectPermanent()对搜索引擎页面排名的影响

在ASP.NET中,开发人员经常使用Response.Redirect()方法,用编程的手法,将对老的URL的请求转到新的URL上.但许多开发人员没有意识到的是,Response.Redirect()方法发的是个 HTTP 302 Found (临时转向) 回复,会在用户尝试访问老的URL时,导致多余的HTTP往返.搜索引擎一般不会跟随多个重新转向跳转,意味着使用一个临时转向会负面影响你的网页排名.       ASP.NET 4引进了一个新的Response.RedirectPermanent

页面跳转 Server.Transfer和 Response.Redirect的区别

1.Server.Transfer 用于把处理的控制权从一个页面转移到另一个页面,在转移的工程中没有离开服务器内部控件(如request,session等)保存的信息不变.因此你能从a页面跳转到b页面而不丢失a页面里的信息. 2.Response.Redirect 发送一个HTTP响应到客服端浏览器,告诉客服端跳转到哪一个页面,客服端在发送跳转请求到服务器.使用此方法将无法保存内部控件的数据,页面a跳转到页面b,而页面b将无法访问a中form提交的数据. 而在具体比较如下 Server.Tran

asp.net 关于Response.Redirect重定向前无法弹出alert对话框的问题

要实现的功能:某项操作后,使用alert()提示框提示"操作成功"之类的提示,然后使用response.Redirect()来进行页面重定向. 出现的问题:运行代码,操作完成后,直接跳转到指定页面,但是并没有弹框提示. 示例代码: 1 protected void gvAttrList_RowDeleting(object sender, GridViewDeleteEventArgs e) 2 { 3 Page.ClientScript.RegisterStartupScript(t

ASP.NET - 网页重定向 Response.Redirect()

在网页中使用重定向,意思就是在网站中的某一个页面跳转到另一个页面. Response.Redirect(~/abc.aspx); 使用“~”的作用是可以从任意位置跳转. 如果没有“~”,那么跳转的时候,只会在同一级目录下搜索.

在MVC里面使用Response.Redirect方法后记得返回EmptyResult

在ASP.NET MVC中我们很多时候都会在拦截器和Controller中直接使用Response.Redirect方法做跳转,但是实际上Response.Redirect方法执行后ASP.NET并不会立即结束当前请求的执行,而是要过一段时间才会终止当前请求的执行,然后命令客户端浏览器去访问Response.Redirect方法中传入的新的URL地址.这会导致一个问题,有时候我们希望Response.Redirect方法执行后后面的代码就取消执行了,因为这并不是我们预期的行为,当代码执行了Res