程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> 關於C# >> ASP.NET 制作讓搜索引擎可以友好訪問的鏈接

ASP.NET 制作讓搜索引擎可以友好訪問的鏈接

編輯:關於C#
 

今天看了一篇文章,主要是講,如何制作讓搜索引擎可以友好訪問的鏈接,大概的內容是這樣的:很多的時候我們在進行查詢的時候,總是會以這樣的鏈接方式傳遞參數:

http://www.yoursite.com/query.aspx?typeid=2

這個鏈接大家看得很明白,就是我希望查看typeid=2的相關記錄的信息。

 

但是這有個問題就是,搜索引擎的spider進行URL解析困難,因為它不太會理解這種帶有參數的方式。

如果希望,每個typeid所對應的數據庫查詢的結果都能夠被搜索引擎輕易的進行收錄,我們或許需要寫成這樣的連接方式。

http://www.yoursite.com/pagetype1.aspx

http://www.yoursite.com/pagetype2.aspx

依次類推。

按照通常的想法,這就需要寫n個這樣的頁面了,相當的繁瑣。

 

不過在ASP.NET中,可以利用Application的BeginRequest的事件進行URL的轉換[將靜態的頁面url的形式轉換為帶參數的動態頁面url],就可以輕易的解決這樣的問題了。請看如下的代碼:

protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext incoming = HttpContext.Current;
string oldpath = incoming.Request.Path.ToLower();
string pageid; // page id requested

//利用正則表達式對url進行解析
Regex regex = new Regex(@"page(/d+).aspx", RegexOptions.IgnoreCase |
RegexOptions.IgnorePatternWhitespace);
MatchCollection matches = regex.Matches(oldpath);

if(matches.Count > 0)
{
//如果滿足條件,則進行改寫,生成相應的帶參數的url方式。
pageid = matches[0].Groups[1].ToString();
incoming.RewritePath("Process.aspx?pageid=" + pageid);
}

}

 

接下來就是需要做一個對應的動態頁面了。

<%
string pageid = Request.QueryString["pageid"];
// Create the page content based on this pageid taken here
%>

 

可以來訪問一下我做的測試頁面。請自己修改page後面的數字。

http://lealting.europe.webmatrixhosting.net/page11.aspx

http://lealting.europe.webmatrixhosting.net/page22.aspx

 

我想我們使用的blog是不是也使用了這樣的機制呢?
 

 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved