我在内容树中创建了一个sitecore年/月/日文件夹结构,当我查看文件夹节点下的每篇文章时,网址可能是http://local/landing/year/month/day/article1.aspx,我怎么能像这样建立网址:{{ 3}}? 只需删除网址中的年/月/日结构。
在sitecore中是否有某些功能可以删除或隐藏前端网址中的特殊模板?
任何帮助,谢谢。
答案 0 :(得分:1)
您可以通过两种方式实现:
使用IIS 7 Url重写模块更改网址。这样,url将在到达sitecore之前被重写,您无需更改任何代码。您可以找到更多info at the iis website
您可以创建自定义项目解析程序并将其添加到RequestBegin sitecore管道。 Alex Shyba写了这篇文章here。
答案 1 :(得分:0)
听起来您可能拥有数千个这样的项目,但即便如此,您可能还想使用Sitecore的内置功能,并考虑为每个项目创建别名。以编程方式在ItemSaved事件或ItemCreated上创建别名可能是最简单的。
答案 2 :(得分:0)
正如@marto和@seth所说,你可以使用URL重写或别名来解决这个问题。
然而,无论你如何选择这样做,这样做都有一个缺点。如果你有很多项目(你的结构听起来像你可能那样),那么任何一种方法都要求URL是唯一的。从URL中删除日期结构意味着着陆部分中的所有项目都需要唯一的URL(无论是从项目名称继承还是通过其他方式继承)。这可能会影响您网站的搜索引擎优化,因为作者可能很难找到一个人类可读且对SEO有益的未使用名称。您不太可能想在网址中使用丑陋的GUID。
答案 3 :(得分:0)
2个选项
更改Bucket配置并设置所需的文件夹结构,可以在Sitecore.Buckets.config文件中找到存储桶配置
扩展GetFromRouteValue项目解析器并覆盖ResolveItem()方法以获取存储区项目。 可以在Sitecore.MVC.config文件中找到默认的GetFromRouteValue类引用,并将其替换为您自己的自定义实现。
如果路径路径匹配,我们已经实现了自定义路由并获取了确切的项目。
谢谢, 吉沙