質問
Kentico CMS(v5.0)内で301リダイレクトのセットアップにどのようにアプローチしますか?
クライアントに簡単な方法(理想的にはCMSデスクインターフェイスを介して)を提供して、最近ケンティコで再実装されたウェブサイトに301リダイレクトを設定したいと考えています。たとえば、「Old-page.cfm」を「New-Page.aspx」にリダイレクトし、元のリクエストに対するHTTP応答が301であることを確認します。
私はそれが機能するように見えるアプローチを持っていますが、おそらくより良い方法があるかもしれません。 Extensions-Less URLを構成しました(Kenticoごとに ドキュメンテーション)そして、新しいドキュメントエイリアスを「新ページ」ドキュメントに追加し、「古いページ」をURLパスとして指定し、URL拡張機能リストに「.CFM」を追加しました。使用 フィドラー (HTTPデバッグプロキシ)ツール、私が起こりたいことが起こっているように見えます。「Old-Page.CFM」のリクエストは301を返し、「新ページ」ドキュメントにリダイレクトし、200の応答を返します。
これがケンチコで301リダイレクトを設定するための良いアプローチであるかどうかを知っていますか?より良い方法はありますか? Kenticoで拡張レスURLを使用するための既知の欠点はありますか?
解決
これは良いアプローチだと思いますし、あなたがしていることをせずに301のリダイレクトを達成する他の方法を知らない。私はしばらくの間、ケンチコで拡張レスURLを使用していますが、それらはうまく機能しています。
他のヒント
によると ケンチコのCTOによるブログ投稿(コメント):
... 4.0(4.0のみ)に新しい(これまでの実験的)設定はほとんどありません。Web.configファイルに入れることができます。
彼らです:
3)
<add key="CMSUsePermanentRedirect" value="true" />
これにより、302リダイレクトではなく、理にかなっている場所で301リダイレクトが可能になります。2)
<add key="CMSRedirectAliasesToMainURL" value="true" /
>より良いSEOのために使用できます。ドキュメント(nodealiaspath)のメインではないすべてのURLで301を実行します。それは今のところあなたに役立つはずです。3)
<add key="CMSRedirectInvalidCasePages" value="true" />
これはさらに進み、特定のケースバリアントにのみページを制限できます。ケースが正しくない場合、正しいケースに301になります。
これらのステータスが5.xであるかどうかはわかりませんが、機能するか、サイトマネージャーのどこかに構成設定になっていると推測しています。
IISライターモジュールをインストールします http://www.iis.net/downloads/microsoft/url-rewrite次に、カスタムハンドラーによって処理されるすべての.cfmページにルール(永続= 301)を追加します。
顧客の場合、古いリンクと新しいリンクの関係を保持する2つの列を持つカスタムテーブルを作成する必要があります。
そのカスタムハンドラーは、任意の一致のカスタムテーブルを調べてから、正しいリダイレクトを実行します。
Helicon(http://www.helicontech.com/isapi_rewrite/)からISAPI Rewriteを使用して、PHPシステムからKenticoに移動する複数のクライアントにIIS6に実装しました。サイトのルートにある.htaccessファイルを使用します。必要に応じて、これをケンチコの編集可能なページにすることができます。または、必要に応じてページのカスタムフィールドから更新可能ですが、クライアントからマッピングリストを取得しました。
オプションのプラグインの1つで、IIS7で同じことをネイティブに行うことができると思います。