2012-07-23 109 views
0

我跟着這個postthis爲了測試創建項目的自定義路由條目。我試圖註冊在Global.asax中像這樣的路線......Sitecore自定義路由(不是MVC)

void RegisterRoutes(RouteCollection routes) 
    { 
     routes.RouteExistingFiles = true; 
     routes.MapPageRoute("about", "about/us", "~/About/Company", false); 
    } 

,但不幸的是,這將導致404我覺得asp.net路由尋找物理頁的「關於/ Company.aspx「,因爲它更像是sitecore樹中sitecore/content/site/about/company的渲染頁面/鏈接。 你知道是否有方法將其重定向到渲染的sitecore url/item?

回答

2

使用路由來做到這一點可能不是最優化的解決方案。

將URL映射到特定項目的最簡單方法是設置別名。有關別名的更多信息,請參閱Data Definition Cookbook中的第6.1章。

如果您需要更多控制,您可以創建一個自定義的ItemResolver,它可以位於HttpRequestBegin管道中默認的ItemResolver之後,並且可以運行您的自定義URL /項映射。