2011-09-20 36 views
0

我正在尋找一種解決方案,可以讓我爲一組頁面打印通用網址。 例如: 對於pages - site.com/About/Contact.aspx,site.com/About/WhoWeAre.aspx,site.com/About/Members.aspx等,用戶應該只看到site.com/About/ in地址欄。 這是可以實現的嗎?本網站不適合搜索引擎優化,並要求用戶在訪問內容之前登錄,也不希望site.com/About/或任何內部網頁在直接在瀏覽器上輸入時解析到任何頁面。如果用戶懸停在內部鏈接上,我也很好,如果真正的URL被打印在狀態欄上。我不認爲URL重寫或URL路由在這裏工作。或者可能是我錯過了一些東西。使用.NET 3.5和C#。 我標記sitecore,因爲我更感興趣的是基於sitecore的解決方案,我在關於樹下有不同的節點,我希望用戶只能在地址欄中看到upto/About,但我認爲如果可以在asp.net中完成,我可以弄清楚sitecore的一部分。一套asp.net內部頁面的通用網址

+0

請問爲什麼你不想顯示完整的網址? – marto

+0

讓我們只是說它的安全性的要求之一 – xoail

回答

0

正如您對sitecore感興趣,我可以告訴您我們如何在最近的sitecore版本中完成自定義網址。

您需要通過擴展當前LinkProvider.LinkBuilder sitecore類來擁有自定義鏈接管理器。然後,您需要通過重寫GetItemUrl和BuidlItemUrl來顯示URL,最後在web.config中爲sitecore添加自定義邏輯,以便使用自定義鏈接管理器。

0

當然,使用asp.net 4路由引擎。

這會給你你想要什麼: http://weblogs.asp.net/dotnetstories/archive/2011/01/03/routing-in-asp-net-4-0-web-forms.aspx

編輯:3.5退房: Friendly URLs for ASP.NET

+0

我看不出這些鏈接將如何幫助我爲我的url集顯示一個通用的url ... – xoail

+0

啊我錯過了它的一部分 - 你希望整個集合不只是一個網址。對不起 - 在這種情況下,您需要根據網址動態加載您想要的任何頁面。查看:http://chriscavanagh.wordpress.com/2008/03/11/aspnet-routing-goodbye-url-rewriting/ –

0

解決這個問題的唯一辦法,在地址欄保持/公司,將創建基於用戶選擇切換內容的客戶端代碼。

0

您可以通過加載關於頁面,然後使用回發或使用ajax調用爲任何子頁面加載內容。

0

您也可以在/ About頁面上放置一個iframe,並讓導航鏈接將iframe指向其他頁面。

我想你可能能夠使用target屬性來定位iframe,或者使用javascript來改變iframe的src。