ASP.NET MVC 3中301永久重定向不带www域名到带www的域名

作者:袖梨 2022-06-25

使用 ASP.NET 又喜欢跟进新技术的朋友可能已经知道,在 ASP.NET 4.0 中增加了 Response.RedirectPermanent() 方法来实现永久重定向,方法的作用在注释中解释的很清楚:执行从所请求 URL 到所指定 URL 的永久重定向,并提供用于完成响应的选项。

ASP.NET MVC 3 项目中,我们可以根据需要来使用以下写法实现永久重定向:

 代码如下 复制代码

public ActionResult Index()
{
    return RedirectPermanent("Contact");
    return RedirectToActionPermanent("Contact");
    return RedirectToRoutePermanent("Contact");
}

过去我们可以通过设置服务器返回的 HTTP 数据流中的状态码,如指定状态码为301代表永久重定向,现在在 ASP.NET 4.0 中 ASP.NET Web Forms项目和 ASP.NET MVC 项目中我们都可以非常简单的实现 URL 永久重定向。

实现从带www的域名永久重定向到不带www的域名,站长这样做也是为了提高域名的排名。

一些朋友可能会使用比较苯的方法,在每个 Controller 下都加上 Response.RedirectPermanent 方法。较为简单的做法是在 Global.axax.cs 中加入下边的代码:

 代码如下 复制代码
protected void Application_BeginRequest(object sender, EventArgs e)
{
    string strUrl = Request.Url.ToString().Trim().ToLower();
    if (strUrl.Contains("http://111com.net"))
    {
        Response.RedirectPermanent("http://www.111com.net");   //not good
    }
}

好果你比较认真的话,会发现这个写法有些不太友好,下边的写法显得更好些:

 代码如下 复制代码

Response.RedirectPermanent(strUrl.Replace("http://111com.net", "http://www.111com.net"));  //good


下面逝去日子告诉大家如何在.htaccess 中强制用户或seo/seo.html" target="_blank">搜索引擎重定向到唯一的域名上。
. 代码如下:

 代码如下 复制代码

#强制重定向到www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^111com.net/ [NC]
RewriteRule ^(.*)$ http://www.111com.net/$1 [L,R=301]

#强制重定向到不带www的顶级域名
RewriteEngine On
RewriteCond %{HTTP_HOST} !^111com.net/$ [NC]
RewriteRule ^(.*)$ http://111com.net/$1 [L,R=301]

iis301非常的简单只要创建两个站点,然后利用一个跳到另一个即可配置就不介绍了。

本篇内容非常简单,但很多人在处理永久重定向时的做法却是错误的,希望对大家有所帮助

相关文章

精彩推荐