6

「404 Not Found」エラーを正しく返すカスタム 404 ページ custom404.aspx をセットアップしましたが、最初に要求された存在しないページは「302 Found」ステータスを返します。

したがって、thispagedoesnotexist.aspx をテストすると、"302 Found" が返され、次に custom404.aspx が読み込まれて "404 Not Found" ステータスが返されます。

検索スパイダー/ボットが、要求されたページが存在せず、検索結果に表示されないことを理解していることを確認したいと考えています。この設定は適切ですか?

4

4 に答える 4

0

上記の質問に答えるために、これがカスタム エラーが ASP.NET でどのように機能するかです。人々が HttpModules を使用してエラーをインターセプトし、ボットではないユーザーにカスタム エラー ページを提供し、ボットと思われるユーザーに 404 応答を提供する例を見てきました (手元にありませんが)。ボットになります。

別の方向では、とにかくボットが定期的に 302 応答を追跡するかどうかはわかりません。もっと関連性があるかもしれませんが、エラーページ (使用可能であると仮定) が検索結果に表示されるのは本当に悪いことですか? 少なくとも、ユーザーはあなたのサイトへのリンクを持っています。これは、競合他社のサイトが表示されるよりも優れています...

于 2010-05-18T19:06:12.417 に答える
0

実際、ほとんどの場合、web.config で構成されているとおりに動作しています。

使用する Web サーバー (IIS 6/7) と 404 カスタム ページを構成するために使用した方法によって異なりますが、基本的に、これはカスタム エラー ページへのリダイレクトとそれを実行することの違いです!

現在、エラー ページにリダイレクトするように asp.net / IIS を構成しています。ページを実行するように設定を変更すると、探しているものが正確に得られます:)

于 2010-05-18T19:24:35.497 に答える
0

私はその解決策を見つけました:

あなたのweb.configに「redirectMode = ResponseRewrite」を入れてください:

<customErrors mode="On" redirectMode="ResponseRewrite" defaultRedirect="~/errors/GeneralError.aspx">
            <error statusCode="404" redirect="~/errors/PageNotFound.aspx" />
        </customErrors>

...そして、Page_Load のカスタム 404 ページに次のように入力します。this.Response.Status = "404 Not Found";

出来上がり!

于 2010-08-26T20:21:04.330 に答える
-4

簡単に言えば ...

例として、次を使用します。

/path_to_error_page.html 

...そしてそうではありません...

http://www.example.com/path_to_error_page.html

その理由は、サーバーが最初のリクエストを解釈してから 404 へのリダイレクトを生成し、クライアントが効果的に 2 つのレスポンスを取得するためです。

相対パスはリダイレクトを生成しませんが、内部サーバー転送により、必要な応答が 1 つだけになります!!

これで問題が解決するはずです。

于 2010-05-17T21:28:59.300 に答える