如何删除网址中的sitecore文件夹名称?

时间:2011-09-10 14:54:09

标签: url sitecore

我在内容树中创建了一个sitecore年/月/日文件夹结构,当我查看文件夹节点下的每篇文章时,网址可能是http://local/landing/year/month/day/article1.aspx,我怎么能像这样建立网址:{{ 3}}? 只需删除网址中的年/月/日结构。

在sitecore中是否有某些功能可以删除或隐藏前端网址中的特殊模板?

任何帮助,谢谢。

4 个答案:

答案 0 :(得分:1)

您可以通过两种方式实现:

  1. 使用IIS 7 Url重写模块更改网址。这样,url将在到达sitecore之前被重写,您无需更改任何代码。您可以找到更多info at the iis website

  2. 您可以创建自定义项目解析程序并将其添加到RequestBegin sitecore管道。 Alex Shyba写了这篇文章here

答案 1 :(得分:0)

听起来您可能拥有数千个这样的项目,但即便如此,您可能还想使用Sitecore的内置功能,并考虑为每个项目创建别名。以编程方式在ItemSaved事件或ItemCreated上创建别名可能是最简单的。

答案 2 :(得分:0)

正如@marto和@seth所说,你可以使用URL重写或别名来解决这个问题。

然而,无论你如何选择这样做,这样做都有一个缺点。

如果你有很多项目(你的结构听起来像你可能那样),那么任何一种方法都要求URL是唯一的。从URL中删除日期结构意味着着陆部分中的所有项目都需要唯一的URL(无论是从项目名称继承还是通过其他方式继承)。这可能会影响您网站的搜索引擎优化,因为作者可能很难找到一个人类可读且对SEO有益的未使用名称。您不太可能想在网址中使用丑陋的GUID。

答案 3 :(得分:0)

2个选项

  1. 更改Bucket配置并设置所需的文件夹结构,可以在Sitecore.Buckets.config文件中找到存储桶配置

  2. 扩展GetFromRouteValue项目解析器并覆盖ResolveItem()方法以获取存储区项目。 可以在Sitecore.MVC.config文件中找到默认的GetFromRouteValue类引用,并将其替换为您自己的自定义实现。

  3. 如果路径路径匹配,我们已经实现了自定义路由并获取了确切的项目。

    谢谢, 吉沙