2010-06-29 48 views
4

您如何在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有沒有已知的缺點?

回答

2

我認爲這是一個很好的方法,我不知道有任何其他方式可以完成301重定向,而無需執行您的操作。我現在已經在Kentico中使用了無擴展的URL,並且它們運行良好。

+0

是的,這似乎迄今運作良好。在採用這種方法之前,我已經創建了一個解決方案,需要在Application_BeginRequest事件中攔截請求並查找存儲在自定義表中的匹配舊式URL。這也工作得很好,並且不需要無擴展名的URL。 – jmcdowell 2010-07-14 02:39:06

2

根據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

1

我已經在IIS6中實現了它,使用從Helicon(http://www.helicontech.com/isapi_rewrite/)的ISAPI重寫從php系統遷移到kentico的幾個客戶端。它在網站的根部使用.htaccess文件。如果需要,您可以將其設置爲可編輯頁面,如果需要,也可以從頁面中的自定義字段更新,但是我們只是從客戶端獲得映射列表。

我相信你可以使用其中一個可選插件在IIS7中本地執行相同的操作。

2

我會安裝IIS重寫器模塊http://www.iis.net/downloads/microsoft/url-rewrite 然後,我會爲所有.cfm頁面添加一個規則(永久= 301)以由自定義處理程序處理。

對於客戶,我必須創建一個具有兩列的自定義表格,這兩列包含舊鏈接和新鏈接之間的關係。

該自定義處理程序然後將查找自定義表中的任何匹配,然後執行正確的重定向。