2009-11-07 36 views
0

使用{ASP.NET 3.5,Windows Server 2003,IIS 6}如何使用url重寫將位置數據存儲在我asp.net網站上所有頁面的url中?

我想優化我的網站搜索引擎優化。例如起見,我有三個頁面的網站:

  • /news.aspx - 列出的新聞文章頁面
  • /events.aspx - 列出事件
  • /位置的頁面。 ASPX - 用於確定用戶的地理位置

如果用戶訪問/news.aspx或不打算先/location.aspx /events.aspx一個頁面,他認爲未過濾的內容(所有的新聞文章或所有事件)。爲了縮小這個範圍,用戶轉到/location.aspx。位置頁面列表指出用戶可以點擊。當用戶點擊一個州時,他會得到一個城市列表。當用戶點擊一個城市時,他會得到一個街道列表。當用戶點擊一條街道時,他將被帶回到/news.aspx,但他看到的內容現在按位置過濾。如果用戶點擊/events.aspx頁面,也是如此。

我可以通過會話或cookie完成所有這些工作,但是對於搜索引擎優化,我有搜索機器人應對。我很確定URL重寫是要走的路,但我發現的例子(它們很多)處理簡單的東西,如/ products/umbrellas或/ books/authors/spolsky。它 - 感覺 - 比這更復雜(也許它更簡單......讓我挺直)。

我最初的想法是,我需要某種形式的URL重寫處理程序或模塊,以便我可以開始使用像mysite.net/WA/Seattle/Pike_Pl這樣的URL。然後,一旦確定了位置,網站中的所有內部URL將具有其中的位置...以到達/events.aspx,鏈接實際上將指向mysite.net/WA/Seattle/Pike_Pl/events。 ASPX。處理程序將從url路徑中獲取位置信息,並將url重寫爲/events.aspx?state=WA & city = Seattle & street = Pike_Pl。這同樣適用於/news.aspx或我網站中的任何其他位置敏感頁面。

如果你已經做了類似的事情,代碼示例將不勝感激。

拜倫

回答

1

那豈不是容易,只需創建一個可放置在上述所有的網頁,允許「就地」過濾控制?

然後是url重寫的問題。我會的網址如下所示:

這兩個事件和新聞頁面會對它控制「SetLocation.ascx」。現在不需要先訪問location.aspx頁面,使用控件來獲取這些設置。

然後使用任何可用趕上像http://siteurl.com/事件 /地區/城市/街道,http://siteurl.com/新聞 /地區/城市/街道,讓他們被映射到內部URL與普通的URL可用的開源UrlReWriters的表達式(其中大部分如果不是全部urlrewriters使用),像這樣:

<rewrite url="~/Events/(.+)" to="~/Event.aspx?area=$1" /> 
<rewrite url="~/Events/(.+)/(.+)" to="~/Event.aspx?area=$1&amp;city=$2" /> 
<rewrite url="~/Events/(.+)/(.+)/(.+)" to="~/Event.aspx?area=$1&amp;city=$2&amp;street=$3" /> 

然後使用像http://siteurl.com/事件/EVENTNAME一個URL指向一個實際的事件(注意失蹤的「在URL /事件後)。將當前選定的區域/城市/街道保存在會話中,並在用戶使用SetLocation.ascx控件更改它時進行更新。

+0

偉大的建議。如果沒有通過鏈接選擇位置的頁面,搜索bot如何爲所有區域索引內容。我仍然在學習SEO,所以請原諒這種新事物。 – 2009-11-07 23:36:49

+0

創建一個頁面,其中包含所有可能的區域/城市/街道鏈接,包括新聞和事件,將其包含在Google站點地圖或robots.txt文件中。 – Colin 2009-11-08 00:14:35

+0

另外,你可以使SetLocation控件使用簡單的鏈接工作,所以谷歌可以遵循這些本身就是普通用戶。 – Colin 2009-11-08 00:15:34