7

これは、Sitecore の質問というよりは、HTTP 仕様に関する質問です。

Sitecore で 404 エラー ページをセットアップしています。

<setting name="ItemNotFoundUrl" value="/404.aspx" />

そのため、ユーザーが存在しないページ (例: www.example.com/xyz) にアクセスすると、カスタム 404 ページ (例: www.example.com/404.aspx) にリダイレクトされます。

以下の Firebug スクリーンショットに示すように、Sitecore は 302 を使用してリダイレクトを実行します。

302 が見つかりました 404 ファイルにリダイレクトされません

これは問題ですか?つまり、Google や他の検索エンジンは、URL www.example.com/xyz で私の 404 ページをインデックスに登録しますか? 問題のサイトは元々、404 ページから "200 OK" 応答を返すように設定されていたため (悪い!)、検索エンジンは、サイトへの壊れたリンクを見つけるたびにサイトの 404 ページをインデックス化していました。

302 は単なるリダイレクトであるため、最終 (カスタム 404) URL のステータス コードは、クライアントが最初の (リダイレクト) URL に適用されると想定するものになると思います。

これが問題ではない場合、それを明確にする正規の仕様/ドキュメントは何ですか?

4

3 に答える 3

10

Ruud が提案したものと同様に、Kern Herskind によるブログ投稿があり、追加のコードを記述する必要のない Sitecore/IIS アプローチを使用しています。

于 2013-01-10T14:30:12.383 に答える
4

すでに述べたように、正しい http 応答ヘッダーは、SEO だけでなく、他の多くのユース ケースにも不可欠です。

「Sitecore エラー マネージャー」と呼ばれる Sitecore 共有ソース モジュールがあります。これにより、Sitecore インストールが正しい 404 ヘッダーで応答し、Sitecore メディア ライブラリ (つまり、pdf ファイル) に対しても、他のエラー応答を構成するなどの他の機能がいくつか付属しています。多言語対応など

サイトコア マーケットプレイス: http://marketplace.sitecore.net/en/Modules/Sitecore_Error_Manager.aspx

Github: https://github.com/unic/SitecoreErrorManager

于 2013-01-11T19:46:12.837 に答える
3

それは確かに問題です。これは、Google が404.aspxページが存在しないと判断し、存在しないアイテムが一時的にリダイレクトされたと判断するためです。

私はこれに対する解決策を思いついたので、ここでブログを書きました。

基本的には、アイテムが存在しないことを (パイプライン プロセッサを介して) 判断し、WebRequest を使用して要求することで 404 ページのコンテンツを取得し、そのコンテンツを 404 ステータス コードと共にブラウザーに返します。

于 2013-01-10T08:02:53.863 に答える