用于asp.net内部页面集的通用URL

时间:2011-09-20 16:04:18

标签: c# asp.net url-rewriting sitecore sitecore6

我正在寻找一种解决方案,允许我为一组页面打印通用URL。 例: 对于页面 - site.com/About/Contact.aspx,site.com/About/WhoWeAre.aspx,site.com/About/Members.aspx等,用户只能在地址栏中看到site.com/About/。 这是可以实现的吗?这个网站不是SEO友好的,要求用户在访问内容之前登录,我也不希望site.com/About/或任何内部页面直接在浏览器上输入时解析到任何页面。如果用户在内部链接上悬停,如果在状态栏上打印真实URL,我也很好。我不认为URL重写或URL路由在这里工作。或者可能是我错过了什么。使用.NET 3.5和C#。 我正在标记sitecore,因为我对基于sitecore的解决方案更感兴趣,我在About树下有不同的节点,我希望用户只能在地址栏中看到upto / About,但我想如果可以在asp.net中完成,我可以找出sitecore部分。

5 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

解决此问题的唯一方法是在地址栏中保留/关闭,即创建客户端代码,根据用户选择切换内容。

答案 2 :(得分:0)

您可以通过加载“关于”页面然后使用回发或使用ajax调用加载任何子页面的内容来实现。

答案 3 :(得分:0)

您还可以在/ About页面上放置iframe,并让导航链接将iframe指向其他页面。

我认为你可以使用target属性来定位iframe,或者使用javascript来更改iframe的src。

答案 4 :(得分:0)

由于您对sitecore感兴趣,我可以告诉您我们如何在最近的sitecore构建中完成自定义URL。

您需要通过扩展当前的LinkProvider.LinkBuilder sitecore类来拥有自定义链接管理器。然后,您需要通过覆盖GetItemUrl和BuidlItemUrl来显示URL以及最后在web.config中添加您想要URL的自定义逻辑,以便使用您的自定义链接管理器。