404エラーとは何ですか? HTTP 404エラーとは、リンクが指向するウェブページが存在しない、つまり元のウェブページのURLが無効であることを意味し、これはよく起こり、回避が困難です。例えば、ウェブページのURL生成ルールの変更、ウェブページファイルのリネームや移動、インポートリンクのスペルミスなどにより、元のURLアドレスがアクセス不能になることがあります。 ウェブサーバーが同様のリクエストを受け取ると、リクエスト対象のリソースが存在しないことをブラウザに404ステータスコードで返します。 しかし、ApacheやIISのウェブサーバーのデフォルトの404エラーページは非常に原始的で退屈、使いにくいため、ユーザーがさらなる手がかりを得るための必要な情報を提供しないため、間違いなくユーザー流出を招くでしょう。 404ページの役割 検索エンジンはHTTPステータスコードを使ってウェブページのステータスを特定します。 検索エンジンが誤ったリンクを得た場合、ウェブサイトは404ステータスコードを返し、リンクのインデックス化を放棄するよう指示します。 200または302のステータスコードが返されると、検索エンジンはそのリンクをインデックス化し、同じウェブコンテンツに指向する多数の異なるリンクを生成します。 その結果、検索エンジンはサイトの信頼度を大幅に下げています。 カスタム404ページが「404」ステータスコードを返すかどうかを確認する方法 カスタム404エラーページを設定した後は、「404」ステータスコードが正しく返されるか必ず確認してください。 確認方法も非常にシンプルで、ウェブページに存在しないウェブサイトのURLを入力し、HTTPヘッダーの返却を確認し、「404」ステータスコードを返すことを確認します。 404ページは正しい選択です 1. Apache Server 404ページの設定方法 .htaccessファイルにコードを追加してください:ErrorDocument 404/Error.html シンプルなHTML404ページを作って、名前を付けてError.html Error.htmlウェブサイトのルートディレクトリに置いてください。 2. IIS/ASP.netで404エラーページを設定する まず、アプリケーションのルートディレクトリの設定を変更し、「web.config」ファイルを編集して、以下の内容を追加します。 <configuration> <system.web> <customErrors mode="On" defaultRedirect="error.asp"> <error statusCode="404" redirect="notfound.asp" /> </customErrors> </system.web> </configuration>
この例では、error.aspがデフォルトの404ページで、notfound.aspがカスタマイズされた404ページです。
次に、カスタムの404ページ「notfound.asp」を追加します: <% Response.Status = "404 Not Found" %>
これにより、IISは「404」ステータスコードを正しく返します
親切な注意喚起 1. 404エラーをウェブサイトのホームページに直接表示しないよう注意してください。そうするとホームページが掲載されなくなる可能性があります。 2. /Error.html メインドメイン名を前に表示しないでください(誤った綴り:yzznl.cn/error.html、正しい書き方 :/error.html)、そうしないとステータスコードが302または200のステータスコードになります。 ウェブサイトから404エラーページのカスタマイズ方法を探す際、多くの記事 asp.net webでweb.configにアクセスし、system.webを見つけて以下を設定するように言われています。
コードのコピーコードは以下の通りです:
<customErrors mode="On" error statusCode="404" redirect="/404.htm" > </customErrors>
実際、これを行うと、404の未発見ウェブページのヘッダー情報は得られず、302の一時リダイレクトのヘッダー情報が得られます。 HTTP ステータスコードを確認するには「Check Headers Tool」ツールを使うことができます。
では、ウェブサイトのカスタム404エラーウェブページをどのように適切に設定すれば asp.net でしょうか?
まず404.aspxページを作成し、customeErrors のweb.configファイル内で次のように設定します: customErrors redirectMode="ResponseRewrite" error statusCode="404" redirect="~/404.aspx"/
/customErrors
RedirectModeには2つのプロパティがあります。 ResponseRedirectとは、ユーザーをそのエラーページにリダイレクトし、元のURLをそのエラーページのURLに変更することを指します。 ResponseRewriteとは、ブラウザ内の元のURLを変更しずにユーザーをエラーページに誘導することを指します。
次に404.aspx.csファイルにPage_Loadイベント用の以下のコードを追加します: コードのコピーコードは以下の通りです:
保護されたvoid Page_Load(オブジェクトセンダー、EventArgs e)
{ Response.Status = 「404 Not Found」;
}
|