最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

ASP.NET实现301重定向方法

来源:动视网 责编:小采 时间:2020-11-27 22:35:06
文档

ASP.NET实现301重定向方法

ASP.NET实现301重定向方法: <span style=font-family:'宋体';font-size:10.5pt;></span> 关于百度等搜索引擎对于是否带www前缀的域名的识别问题:即搜索引擎会将www.abc.com和abc.com识别为不同的两个域名,这样做的后果就是分散了对网站的关注度,不利于网站
推荐度:
导读ASP.NET实现301重定向方法: <span style=font-family:'宋体';font-size:10.5pt;></span> 关于百度等搜索引擎对于是否带www前缀的域名的识别问题:即搜索引擎会将www.abc.com和abc.com识别为不同的两个域名,这样做的后果就是分散了对网站的关注度,不利于网站


<span style="font-family:'宋体';font-size:10.5pt;"></span> 

关于百度等搜索引擎对于是否带"www"前缀的域名的识别问题:即搜索引擎会将www.abc.com和abc.com识别为不同的两个域名,这样做的后果就是分散了对网站的关注度,不利于网站的宣传和推广。

仅仅是通过Response.Redirect方法来重定向该连接,虽然可以将连接进行重定向,但是无法解决搜索引擎的识别分散问题的;此问题可通过301重定向来进行解决,具体在ASP.NET中可通过如下方法来处理:

private void CheckTopDomainName(HttpContext context) 
 { 
 Uri url = context.Request.Url; 
 string host = url.Host.ToLower(); 
 
 int count = host.Split('.').Length; 
 bool doubleDomainName = host.EndsWith(".com.cn", StringComparison.CurrentCultureIgnoreCase) || 
 host.EndsWith(".net.cn", StringComparison.CurrentCultureIgnoreCase) || 
 host.EndsWith(".gov.cn", StringComparison.CurrentCultureIgnoreCase) || 
 host.EndsWith(".org.cn", StringComparison.CurrentCultureIgnoreCase); 
 
 if (count == 2 || (count == 3 && doubleDomainName)) 
 { 
 context.Response.Status = "301 Moved Permanently"; 
 // 避免替换掉后面的参数中的域名 
 context.Response.AddHeader( 
 "Location", 
 url.AbsoluteUri.Replace( 
 string.Format("http://{0}", host), 
 string.Format("http://www.{0}", host) 
 ) 
 ); 
 } 

更多关于ASP.NET301实现的方法实例:

因为IIS设置301需要在服务器中配置很麻烦,所以ME选择了在程序中实现。
程序中实现有个缺点就是执行效率没有在IIS服务器中速度快。

当然了,这里说的只是适合动态网站的,如果都是.html静态文件就飘过吧!

好了还是直接上代码吧:

网页首页文件index.aspx后台代码

//判断是否是www.开头,如果不是301调整到www.域名 
if (!System.Web.HttpContext.Current.Request.Url.ToString().StartsWith("http://www.")) 
{ 
 //301 重定向到 /目录下 
 HttpContext.Current.Response.StatusCode = 301; 
 HttpContext.Current.Response.Status = "301 Moved Permanently"; 
 HttpContext.Current.Response.AddHeader("Location", "http://www.qinquan.org/"); 
 HttpContext.Current.Response.End(); 
}

这里因为是我的独立站点,所以直接写www.了。如果是二级域名就需要根据需求自己修过了。

栏目页/内容页代码:

//如果url结尾不是以/符号结尾的,同样301到末尾增加/符号。

if (!System.Web.HttpContext.Current.Request.RawUrl.EndsWith("/")) 
{ 
 //301 重定向到 /目录下 
 HttpContext.Current.Response.StatusCode = 301; 
 HttpContext.Current.Response.Status = "301 Moved Permanently"; 
 HttpContext.Current.Response.AddHeader("Location", System.Web.HttpContext.Current.Request.RawUrl + "/"); 
 HttpContext.Current.Response.End(); 
}

文档

ASP.NET实现301重定向方法

ASP.NET实现301重定向方法: <span style=font-family:'宋体';font-size:10.5pt;></span> 关于百度等搜索引擎对于是否带www前缀的域名的识别问题:即搜索引擎会将www.abc.com和abc.com识别为不同的两个域名,这样做的后果就是分散了对网站的关注度,不利于网站
推荐度:
标签: 方法 asp ASP.NET
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top