4

Kentico CMS (v5.0) 内で 301 リダイレクトを設定するには、どのようにアプローチしますか?

Kentico で最近再実装された Web サイトで 301 リダイレクトを設定する簡単な方法 (理想的には CMS Desk インターフェイスを介して) をクライアントに提供したいと考えています。たとえば、「old-page.cfm」を「new-page.aspx」にリダイレクトし、元の要求に対する HTTP 応答が 301 であることを確認します。

うまくいくように見えるアプローチがありますが、もっと良い方法があるかもしれません。拡張子のない URL を構成し (Kentico のドキュメントに従って)、新しいドキュメント エイリアスを「新しいページ」ドキュメントに追加し、「古いページ」を URL パスとして指定し、「.cfm」を URL 拡張子リストに追加しました。Fiddler (HTTP Debugging Proxy) ツールを使用すると、私が望んでいたことが起こっているように見えます: 「old-page.cfm」のリクエストは 301 を返し、「新しいページ」ドキュメントにリダイレクトし、200 を返します。応答。

これが Kentico で 301 リダイレクトを設定するための適切なアプローチであるかどうかを知っている人はいますか? より良い方法はありますか?Kentico で拡張子のない URL を使用することの既知の欠点はありますか?

4

4 に答える 4

2

これは良いアプローチだと思います。あなたがしていることをせずに 301 リダイレクトを達成する他の方法を知りません。Kentico でしばらくの間、拡張子のない URL を使用してきましたが、うまく機能します。

于 2010-07-06T01:21:51.127 に答える
2

IIS Rewriter モジュールhttp://www.iis.net/downloads/microsoft/url-rewriteをインストールします。 次に、すべての .cfm ページがカスタム ハンドラーによって処理されるようにルール (永続 = 301) を追加します。

顧客のために、古いリンクと新しいリンクの間の関係を保持する 2 つの列を持つカスタム テーブルを作成する必要があります。

そのカスタム ハンドラーは、一致するものがないかカスタム テーブルを調べてから、正しいリダイレクトを行います。

于 2013-11-22T06:50:06.293 に答える
2

Kentico の CTO によるブログ投稿 (コメント) によると:

... 4.0 には、web.config ファイルに入れることができる新しい (これまでのところ実験的な) 設定がほとんどありません (4.0 のみ)。

彼らです:

3) <add key="CMSUsePermanentRedirect" value="true" />302 リダイレクトの代わりに、意味のある場所で 301 リダイレクトを許可します。

2) <add key="CMSRedirectAliasesToMainURL" value="true" /> より良い SEO のために使用できます。ドキュメントのメインではないすべての URL (NodeAliasPath) で 301 を実行します。それは今のところあなたを助けるはずです。

3)<add key="CMSRedirectInvalidCasePages" value="true" />さらに進んで、ページを特定のケース バリアントのみに制限することができます。大文字小文字が正しくない場合は、正しい大文字小文字に 301 を取得します。

これらが 5.X でどのような状態になっているのかはわかりませんが、動作するか、Site Manager のどこかにある構成設定になっていると思います。

于 2010-07-26T14:39:16.237 に答える
1

Helicon (http://www.helicontech.com/isapi_rewrite/) の ISAPI Rewrite を使用して、php システムから kentico に移行する複数のクライアント用に IIS6 に実装しました。サイトのルートで .htaccess ファイルを使用します。必要に応じて kentico から編集可能なページにするか、必要に応じてページのカスタム フィールドから更新可能にすることができますが、クライアントからマッピング リストを入手しました。

オプションのプラグインの 1 つを使用して、IIS7 でネイティブに同じことを実行できると思います。

于 2011-08-02T07:46:42.867 に答える