我在內容樹中創建了一個sitecore year/month/day文件夾結構,當我查看文件夾節點下的每篇文章時,url可能是http://local/landing/year/month/day/article1.aspx,我怎麼可以使這樣的url:http://local/landing/article1.aspx? 只是刪除網址中的年/月/日結構。如何刪除url中的sitecore文件夾名稱?
sitecore中是否有某些功能,例如刪除或隱藏前端網址中的特殊模板?
任何幫助,謝謝。
我在內容樹中創建了一個sitecore year/month/day文件夾結構,當我查看文件夾節點下的每篇文章時,url可能是http://local/landing/year/month/day/article1.aspx,我怎麼可以使這樣的url:http://local/landing/article1.aspx? 只是刪除網址中的年/月/日結構。如何刪除url中的sitecore文件夾名稱?
sitecore中是否有某些功能,例如刪除或隱藏前端網址中的特殊模板?
任何幫助,謝謝。
你可以做到這一點在2種方式:
使用IIS 7 URL重寫模塊更改URL。通過這種方式,網址在獲得sitecore之前將被重寫,而且您不需要更改任何代碼。您可以找到更多info at the iis website
您可以創建自定義項目解析器並將其添加到RequestBegin sitecore管道。亞歷克斯Shyba寫了關於它here。
這聽起來像你可能有數以千計的這些項目,但即便如此,您可能需要使用內置的Sitecore的功能,並考慮每個這些項目的創建別名。以編程方式在ItemSaved事件或ItemCreated上創建別名可能是最簡單的。
正如@marto和@seth所說的,您可以使用URL重寫或別名來解決這個問題。
但是,這樣做有一個缺點,無論你如何選擇這樣做。
如果你有很多項目(你的結構聽起來像你可能會這樣做),那麼任何一種方法都會要求URL是唯一的。從URL中刪除日期結構意味着着陸部分中的所有項目都將需要唯一的URL(無論是從其項目名稱還是其他方式繼承)。這可能會影響您的網站的搜索引擎優化,因爲作者可能很難找到一個未使用的名稱,這也是人類可讀的,對SEO有好處。你不可能在你的網址中使用醜陋的GUID。
2選項
變化剷鬥配置和該組中的所需的文件夾結構,桶結構可在Sitecore.Buckets.config找到的文件
擴展GetFromRouteValue項目Resolver和覆蓋ResolveItem( )方法來獲取存儲桶項目。 可以在Sitecore.MVC.config文件中找到默認的GetFromRouteValue類引用,並將其替換爲您自己的自定義實現。
我們已經與定製的路由,並得到確切的項目,如果該路由路徑相匹配來實現。
謝謝, Jisha