【ASP.NET問題】ASP.NETウェブサイト404のページは200を返して、あるいは302の解決方法

2108 ワード

ウェブサイトを作ってウェブサイトを最適化する時に404ページをジャンプして200、302の状態に戻るという問題に遭遇し、そうすると検索エンジンはこのページが正常なページだと思っているが、このページは実際にはエラーページであり、アクセスしたユーザーにとってHTTPステータスコードが「404」なのか「200」なのかは何の違いもなく、同じようにユーザー体験を高めたが、検索エンジンにとって、これはかなり重要である.致命的だ.
検索エンジンクモは、あるエラーURLアドレスに対して「404」状態の応答を要求すると、そのURLアドレスが失効したことを知り、そのページをインデックスしなくなり、そのURLアドレスが示すページをインデックスデータベースから削除することをデータセンターにフィードバックし、検索エンジンがこの404ページに対して「200」状態の応答を得た場合、urlアドレスが有効であると判断し、インデックスを削除する.インデックス・データベースに収録されます.これにより、検索エンジンにとってすべてのエラー・ページが異なるurlアドレスの内容と同じページになります.これにより、ページが大量に重複し、サイトの品質のスコアが大幅に低下し、直接権限が低下します.
したがって、正しく設定されたカスタム404エラーページは、正しく表示されるだけでなく、200または他のエラーコードではなく「404」エラーコードを返すべきである.このページが存在しないことをユーザーに伝えるだけでなく、通常のページではなく404エラーページであることを検索エンジンに正しく知らせる必要があります.
簡単なチェックでは、カスタム404ページにステータスコードが追加されていません.
 Response.StatusCode = 404;

しかし、問題は依然として存在し、これは主にカスタムエラーページが構成されており、プログラムがエラーページにアクセスするのに302ジャンプしたためである.
またグローバルファイルGlobal.asax書き込みに関する方法:
protected void Application_Error(object sender, EventArgs e)
{
 HttpException erroy = Server.GetLastError() as HttpException;
 if (erroy != null && erroy.GetHttpCode() == 404)
  {
    Server.ClearError();
    string path = "~/404.aspx";
    Server.Transfer(path);
    Response.End();
    return;
  }
}

これで問題は解決した.
参照ドキュメント:
asp.Netサイト404ページは200、または302の解決策を返す
あなたの目の中の404ページは必ずしも404ステータスコード404ページがどのように正しく設定されているかを返すとは限らない.
 
転載先:https://www.cnblogs.com/yc-755909659/p/9391329.html