W3C home > Mailing lists > Public > www-archive@w3.org > December 2002

Serving XHTML as application/xhtml+xml for XHTML aware browsers, text/html for others

From: Dominique HazaŽl-Massieux <dominique.hazael-massieux@centraliens.net>
Date: 04 Dec 2002 13:27:50 +0100
To: www-archive@w3.org
Message-Id: <1039004871.23384.474.camel@stratustier>
XHTML is a great way forward to avoid the infamous tag soup that many
web sites have deployed over the time. But for this, and as described by
http://www.w3.org/TR/xhtml-media-types/#application-xhtml-xml
it ought to be served as application/xhtml+xml. But some browsers do not
recognize this mime-type, and for instance, IE proposes to download a
page served with this mime-type instead of displaying it. Here is a
solution to workaround this.

On my personal web site, I serve my XHTML 1.0 as application/xhtml+xml
for all user agents, except those that don't have this mime-type in
their Accept header AND have text/html or */* in it. For those, it is
served as text/html (which is OK, since my XHTML follows the
compatibility guidelines).

To do that, I use the following settings on Apache (very much inspired
from http://schneegans.de/tips/apache-xhtml.html): 
# All my .html files are XHTML
AddType  application/xhtml+xml html

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_ACCEPT} !application/xhtml\+xml
RewriteCond %{HTTP_ACCEPT} (text/html|\*/\*)
RewriteCond %{REQUEST_FILENAME} .*\.html
RewriteRule ^.*$ - "[T=text/html,L]"

(compared to the original version, it makes the right mime-type the
default, and the wrong one only in some very specific cases).

Among the browsers that do not recognize application/xhtml+xml, I have
tested with Netscape 4.7 on Linux and IE5.5 on Windows, and they both
displayed the pages correctly (e.g., they didn't ask to download the
page).
-- 
Dominique HazaŽl-Massieux - http://www.nimbustier.net/

Received on Wednesday, 4 December 2002 07:28:36 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 7 November 2012 14:17:24 GMT