.netは404エラーページを返してジャンプする解決方法

5786 ワード

asp.Netサイトではurlパラメータのアップグレードや変更により、古いページアドレスの使用を継続するエラーが発生することがよくあります.このようなサイト404のエラーは、多くの人がwebにいるだけです.configでエラー転向ページを定義するかGlobal.asaxでエラーをキャプチャした後、エラープロンプトページにジャンプします.このような簡単な処理は、aspのため、検索エンジンに友好的ではない.Netが返す状態は404ではなく302ジャンプであり、検索エンジンに誤導され、検索が無効なページアドレスを保持する.カスタム404エラーページを正しく設定するには、「404」エラーコードを返し、「200」または「302」ステータスではなく、エラープロンプト情報を表示する必要があります.
Webを一般的に使用する.config中customErrors配置節asp.Netは、カスタム404の出力ページにResponseを設定しても、戻ってきたheadヘッダに302ステータスを追加します.StatusCode=404もaspを消去ことはできない.Netプラス302エラー.だから私の処理方法はグローバルエラー処理Application_Errorでhtmlコードを設定して直接返します.
protected void Application_Error(object sender, EventArgs e)
{
Response.Clear();
Response.StatusCode
= 404;
Response.Write(
"<html xmlns=\"http://www.w3.org/1999/xhtml/" ><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" /><title> </title><meta http-equiv=\"refresh\" CONTENT=\"0; url=/\"></head><body><div>" +
"<div style=\"display:none;\"> </div></div></body></html>");
Response.End();
}

なぜ余計な「ページが見つからない」のか.ieにはBUGがあるからです.404ページサイズが521 B未満の場合、ieのデフォルトコンテンツに置き換えられます.
これは私の古いブログの中の文章で、古いブログをなくしたので書き直すしかありません.これから毎週1篇のブログを書くように努力して、内容はオリジナルを主として、私のここ数年の開発経験を分かち合います.