26

カスタムエラーページを表示したい:

<!doctype html>
<html>
<head><title>400 Bad Request</title></head>
<body><h1>400 Bad Request</h1>
The grob must be in the frobber.
</body>
</html>

残念ながら、InternetExplorerはHTTPサーバーから送信された応答を無視します。私のページを非表示にして自分のページを表示する:

ジェネリック

ユーザーが送信されたページを表示するようにInternetExplorerを説得するにはどうすればよいですか?

EditChromeは2008年に同じことを始めました。人々はそれを修正するように求めてきました。しかし、それは修正されないとしてマークされています。

そして、あなたは答えの同じトリックを使ってそれを修正することができます。

4

1 に答える 1

39

解決策は、DDDINGです。

ナレッジベースの記事KB294807にあるMicrosoftのメモ:

方法:サーバー側でInternetExplorer5.xおよび6.xの「わかりやすいHTTPエラーメッセージを表示する」機能をオフにします

...これらの「わかりやすい」エラーメッセージは、クライアントに送信される応答が指定されたしきい値以下の場合にのみ表示されます。たとえば、HTTP 500応答の正確なテキストを表示するには、コンテンツの長さが512バイトより長くなければなりません。

このパディングを実装します。これを行うには、VBScript文字列関数を使用して、同じ文字の文字列を返します。これは、InternetExplorer5.xがわかりやすいエラーメッセージを表示するために使用するErrorThresholdより1つ多くなります。たとえば、500-100.aspのタグの直前に次の行を追加します。

 <% Response.Write String(513, "_") %>

大きくする

だから私は応答ページをまとめて:

<!doctype html>
<html>
<head><title>400 Bad Request</title></head>
<body><h1>400 Bad Request</h1>
The grob must be in the frobber.

<!--       
    512 bytes of padding to suppress Internet Explorer's "Friendly error messages"

    From: HOW TO: Turn Off the Internet Explorer 5.x and 6.x "Show Friendly HTTP Error Messages" Feature on the Server Side
          http://support.microsoft.com/kb/294807

    Several frequently-seen status codes have "friendly" error messages 
    that Internet Explorer 5.x displays and that effectively mask the 
    actual text message that the server sends.
    However, these \"friendly\" error messages are only displayed if the 
    response that is sent to the client is less than or equal to a 
    specified threshold.
    For example, to see the exact text of an HTTP 500 response, 
    the content length must be greater than 512 bytes.
  -->
</body>
</html>

問題が解決しました。

ボーナスリーディング

IEがわかりやすいエラーページを表示することにした理由は何ですか?

答えは、サーバーの応答が2つの基準を満たす必要があるということです。

  • HTTPステータスコードは[400、403、404、405、406、408、409、410、500、501、505]である必要があります
  • HTTP応答本文のバイト長は、しきい値よりも短くする必要があります

バイト長のしきい値は、レジストリのHKEY_LOCAL_MACHINEのサブキー\ SOFTWARE \ Microsoft \ Internet Explorer \ Main\ErrorThresholdsに保存されます。

  • [403、405、410]: 256バイト
  • [400、404、406、408、409、500、501、505]: 512バイト
  • それ以外の場合:512バイト
于 2012-07-18T14:44:11.510 に答える