ASP.NET 制作让搜索引擎可以友好访问的链接
作者:http://www.donews.net/lealting/archive/2004/03/31/9759.aspx
今天看了一篇文章,主要是講,如何制作讓搜索引擎可以友好訪問的鏈接,大概的內(nèi)容是這樣的:很多的時(shí)候我們在進(jìn)行查詢的時(shí)候,總是會以這樣的鏈接方式傳遞參數(shù):
http://www.yoursite.com/query.aspx?typeid=2
這個(gè)鏈接大家看得很明白,就是我希望查看typeid=2的相關(guān)記錄的信息。
?
但是這有個(gè)問題就是,搜索引擎的spider進(jìn)行URL解析困難,因?yàn)樗惶珪斫膺@種帶有參數(shù)的方式。
如果希望,每個(gè)typeid所對應(yīng)的數(shù)據(jù)庫查詢的結(jié)果都能夠被搜索引擎輕易的進(jìn)行收錄,我們或許需要寫成這樣的連接方式。
http://www.yoursite.com/pagetype1.aspx
http://www.yoursite.com/pagetype2.aspx
依次類推。
按照通常的想法,這就需要寫n個(gè)這樣的頁面了,相當(dāng)?shù)姆爆崱?/span>
?
不過在ASP.NET中,可以利用Application的BeginRequest的事件進(jìn)行URL的轉(zhuǎn)換[將靜態(tài)的頁面url的形式轉(zhuǎn)換為帶參數(shù)的動(dòng)態(tài)頁面url],就可以輕易的解決這樣的問題了。請看如下的代碼:
protected void Application_BeginRequest(object sender, EventArgs e){?????? HttpContext incoming = HttpContext.Current;?????? string oldpath = incoming.Request.Path.ToLower();?????? string pageid; // page id requested??????? //利用正則表達(dá)式對url進(jìn)行解析
?????? Regex regex = new Regex(@"page(/d+).aspx",? RegexOptions.IgnoreCase |??????????????? RegexOptions.IgnorePatternWhitespace);?????? MatchCollection matches = regex.Matches(oldpath);??????? if(matches.Count > 0) ?????? {??????????????? //如果滿足條件,則進(jìn)行改寫,生成相應(yīng)的帶參數(shù)的url方式。
??????????????? pageid = matches[0].Groups[1].ToString();?????????? ??????????????? incoming.RewritePath("Process.aspx?pageid=" + pageid);?????? }?????? }
接下來就是需要做一個(gè)對應(yīng)的動(dòng)態(tài)頁面了。
<%?????? string pageid = Request.QueryString["pageid"];?????? // Create the page content based on this pageid taken here%>
可以來訪問一下我做的測試頁面。請自己修改page后面的數(shù)字。
http://lealting.europe.webmatrixhosting.net/page11.aspx
http://lealting.europe.webmatrixhosting.net/page22.aspx
我想我們使用的blog是不是也使用了這樣的機(jī)制呢?
原文請?jiān)L問這里。
總結(jié)
以上是生活随笔為你收集整理的ASP.NET 制作让搜索引擎可以友好访问的链接的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 17 种正则表达式
- 下一篇: Asp.net(c#)实现多线程断点续传