ASP.NET實現(xiàn)301重定向方法
<span style="font-family:'宋體';font-size:10.5pt;"></span>
關于百度等搜索引擎對于是否帶"www"前綴的域名的識別問題:即搜索引擎會將www.abc.com和abc.com識別為不同的兩個域名,這樣做的后果就是分散了對網(wǎng)站的關注度,不利于網(wǎng)站的宣傳和推廣。
僅僅是通過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"; // 避免替換掉后面的參數(shù)中的域名 context.Response.AddHeader( "Location", url.AbsoluteUri.Replace( string.Format("http://{0}", host), string.Format("http://www.{0}", host) ) ); }
更多關于ASP.NET301實現(xiàn)的方法實例:
因為IIS設置301需要在服務器中配置很麻煩,所以ME選擇了在程序中實現(xiàn)。
程序中實現(xiàn)有個缺點就是執(zhí)行效率沒有在IIS服務器中速度快。
當然了,這里說的只是適合動態(tài)網(wǎng)站的,如果都是.html靜態(tài)文件就飄過吧!
好了還是直接上代碼吧:
網(wǎng)頁首頁文件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.了。如果是二級域名就需要根據(jù)需求自己修過了。
欄目頁/內容頁代碼:
//如果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(); }
相關文章
C# 沒有動態(tài)的數(shù)組,可以用arraylist或list取代
C#里沒有動態(tài)的數(shù)組,只能用arraylist或list取代。2009-06-06Biwen.Settings如何添加對IConfiguration&IOptions的集成支持
Biwen.Settings?是一個簡易的配置項管理模塊,主要的作用就是可以校驗并持久化配置項,比如將自己的配置存儲到數(shù)據(jù)庫中,JSON文件中等,這篇文章主要介紹了Biwen.Settings如何添加對IConfiguration&IOptions的集成支持,需要的朋友可以參考下2024-05-05IIS7偽靜態(tài)web.config配置的方法和規(guī)則
本文主要介紹IIS7上配置偽靜態(tài)的超簡單的新方法,安裝URLRewrite插件,配置web.config即可。2016-04-04asp.net Page.Controls對象(找到所有服務器控件)
通過此對象找到所有服務器控件。2008-11-11詳解可跨域的單點登錄(SSO)實現(xiàn)方案【附.net代碼】
本篇文章主要介紹了可跨域的單點登錄(SSO)實現(xiàn)方案,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-11-11