一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

asp.net实现301重定向不带www域名到带www的域名

时间:2013-07-09 编辑:简简单单 来源:一聚教程网

一些朋友可能会使用比较苯的方法,在每个 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文件中增加301重定向指令

采用“mod_rewrite”技术,形如:

 代码如下 复制代码

RewriteEngine on

RewriteRule ^(.*)$ http://xxx.com/$1 [R=301,L]

1.重定向domain.com到www.domain.com

这种重定向旨在使域名唯一,是网站SEO必须要做的,后面重定向www.domain.com到domain.com也是出于同样的原因,只是形式不同。打开.htaccess文件,加入以下规则。(下面的规则是针对主域名的,子域名要修改)

 代码如下 复制代码

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

2.重定向www.domain.com到domain.com

 代码如下 复制代码

RewriteEngine On
RewriteCond %{HTTP_HOST} !^domain.com$ [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

3.重定向olddomain.com到www.newdomain.com

 代码如下 复制代码

RewriteEngine On
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [L,R=301]

4.重定向olddomain.com to newdomain.com

 代码如下 复制代码

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !olddomain.com$ [NC]
RewriteRule ^(.*)$ http://newdomain.com/$1 [L,R=301]

5.重定向domain.com/file/file.php 到 otherdomain.com/otherfile/other.php

 代码如下 复制代码

RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule ^file/file.php$ http://www.otherdomain.com/otherfile/other.php [R=301,L]


用ASP/PHP实现301重定向:

ASP:

 代码如下 复制代码

Response.Status="301 Moved Permanently"

Response.AddHeader "Location","http:///"

Response.End

 

PHP:

 代码如下 复制代码

header("HTTP/1.1 301 Moved Permanently");

header("Location:http:///");

exit();

热门栏目