如何在Kentico CMS中设置301重定向

问题描述:

您如何在Kentico CMS(v5.0)中设置301重定向?如何在Kentico CMS中设置301重定向

我想通过一个简单的方法(理想情况下通过CMS Desk界面)提供一个客户端,在最近在Kentico上重新实现的网站中设置301个重定向。例如,我想将“old-page.cfm”重定向到“new-page.aspx”,并确保对原始请求的HTTP响应为301.

我有一种看起来像是有效的方法,但也许有更好的方法。我配置了无扩展名的URL(根据Kentico的documentation),并为“新页面”文档添加了一个新的文档别名,将“旧页面”指定为URL路径,并将“.cfm”添加到URL扩展名列表中。使用Fiddler(HTTP调试代理)工具,它看起来像我想要发生的事情发生:对“old-page.cfm”的请求返回301,重定向到“新页面”文档,并返回200响应。

有谁知道这是否是在Kentico中设置301重定向的好方法?有没有更好的办法?在Kentico中使用无扩展的URL有没有已知的缺点?

我认为这是一个很好的方法,我不知道有任何其他方式可以完成301重定向,而无需执行您的操作。我现在已经在Kentico中使用了无扩展的URL,并且它们运行良好。

+0

是的,这似乎迄今运作良好。在采用这种方法之前,我已经创建了一个解决方案,需要在Application_BeginRequest事件中拦截请求并查找存储在自定义表中的匹配旧式URL。这也工作得很好,并且不需要无扩展名的URL。 – jmcdowell 2010-07-14 02:39:06

根据Blog Post (Comment) by the CTO of Kentico

...有一些新的(迄今为止的实验)设置在4.0(4.0)您可以把在web.config文件中。

它们是:

3)<add key="CMSUsePermanentRedirect" value="true" />允许的地方301重定向的地方是有道理的,而不是302重定向。

2)<add key="CMSRedirectAliasesToMainURL" value="true" />您可以使用它来改善搜索引擎优化。它在每个不是文档主要URL的地方(NodeAliasPath)都有301个。这应该可以帮助你。

3)<add key="CMSRedirectInvalidCasePages" value="true" />它更进一步,并允许您将页面仅限制为特定的案例变体。如果案件不正确,则301案件适用于正确的案件。

我不确定这些与5.X的状态是什么,但我猜他们要么工作,要么他们现在在站点管理器中的某处配置设置。

+0

这些选项现在可以在Kentico 5.0和更新版本的标准CMS站点管理器设置中进行编辑。 – 2010-11-10 01:55:47

我已经在IIS6中实现了它,使用从Helicon(http://www.helicontech.com/isapi_rewrite/)的ISAPI重写从php系统迁移到kentico的几个客户端。它在网站的根部使用.htaccess文件。如果需要,您可以将其设置为可编辑页面,如果需要,也可以从页面中的自定义字段更新,但是我们只是从客户端获得映射列表。

我相信你可以使用其中一个可选插件在IIS7中本地执行相同的操作。

我会安装IIS重写器模块http://www.iis.net/downloads/microsoft/url-rewrite 然后,我会为所有.cfm页面添加一个规则(永久= 301)以由自定义处理程序处理。

对于客户,我必须创建一个具有两列的自定义表格,这两列包含旧链接和新链接之间的关系。

该自定义处理程序然后将查找自定义表中的任何匹配,然后执行正确的重定向。