Before I present a detailed description of the problem I thought I'd
just bounce of an intro to see if its a common "fault".
I have found, using apache 1.x latest and mod_perl 1.x latest that if I use
internal redirection to a mod_perl handler for ErrorDocument 500
(server_error) then even though I return the perfectly correct data (html
headers etc) to the browser, every browser works fine. Except that is,
Internet Explorer 6 (maybe earlier too but I have no test bed). Internet
Explorer chooses to display the default Microsoft internal server error page
and not the html which is actually returned. If I use a network monitor like
Iris I can see that the data is returned perfectly...but Internet Explorer
refuses to display it. This problem my apply to other error codes. The only
fix I found is to use a fully qualified host redirect for the
ErrorDocument.. but then I lose fancy stuff like previous request analysis.

Yet another example of M$ knowing what her consumers want better than those
consumers themselves.  IE will try to substitute so-called "friendly" error
messages for all of the browser errors you could experience if the "Show
Friendly Error Messages" option is selected in IE's "Advanced Settings" page
(which it is by default I believe).  Now, you can turn this option off in
your own browser, but obviously you can't control your visitor's settings.

However, there is a "hack".  Just make sure that your error message is
bigger (in bytes) than than the "trigger" size that MS uses and your message
will be displayed in place of theirs.  Now, I can't remember what that
trigger size is, so you may need to experiment, search the web, or wait for
some human encyclopeadia to post it here...  :-)


Jonathan M. Hollin - WYPUG
http://wypug.pm.org/

Reply via email to