[clear explanation of the problem deleted]
Quote:>I think that makes it an Apache bug.
It doesn't. Sevo Stille and others have explained what's happening,
but they didn't make it clear that you're ignoring the HTTP protocol.
Webservers use the HTTP protocol: the client (browser) sends an HTTP
request and receives an HTTP response. HTTP responses include a
3-digit status code, which defines whether the response is a valid
document, a redirection, an error, or something else. Document bodies
can be attached to redirections and errors, but the client may ignore
them; after all, they do not represent successfully retrieved
documents. This is in section 6.1.1 of the HTTP 1.1 specification
(RFC 2068, at
or elsewhere). Therefore, MSIE is perfectly free to ignore
the contents of error documents.
Every document returned by the webserver contains such a status code
and a couple of headers to indicate the file type, size, etcetera.
The HTTP-EQUIV construct you're using is an attempt to override the
HTTP status code or a HTTP document header from within the document
body. It basically says "please, dear browser, I know I specified
a status code and some document headers, but I lied, use this instead".
In your case: you are serving an error message, but in its body (which
MSIE is free to ignore) you try to turn it into a redirection.
Netscape invented this workaround to circumvent the problem that many
of us cannot specify the actual document headers, or don't know how.
Most browsers now try to use this information, but it will always
be a hack: nothing in the HTTP protocol requires that it is used.
The HTTP status code and document headers are product information.
Product information is supposed to be on the cover; it cannot be
overridden by notes found inside. The HTTP-EQUIV hack tries to do
exactly that. Using it is like selling pre-packaged apple pies,
properly labeled, with small notes inside the pie: 'best before
end 1991 is what the package says, please correct that to 2001'
or 'warning: contains lethal dosis of strychnine, do not eat'.
These notes may never reach the customer.
The proper solution is the alternative you mentioned. For example,
to redirect all *.html files on the server to =.shtml, use
RedirectMatch /(.*)\.html http://svwww1:8080/$1.shtml
(To be honest: I didn't know this, but it's explained in the manual.)