mod_xhtml_neg 1.0 review
Downloadmod_xhtml_neg performs content-negotiation for XHTML documents conforming to Appendix C of the XHTML 1.0 specification. This modul
|
|
mod_xhtml_neg performs content-negotiation for XHTML documents conforming to Appendix C of the XHTML 1.0 specification.
This module for the the Apache HTTP server gives it the ability to correctly negotiate content types for XHTML documents. Without negotiation, these would be sent as text/html. For browsers that support XHTML as an XML document, the content can (and should) be sent as application/xhtml+xml. See the W3C's technical note for details.
Also see RFC 3236 for some of the technicalities of correctly negotiating XHTML documents.
One solution that's been seen around the web in a few places is to use the Apache mod_rewrite module to sniff the Accept: header in HTTP requests. This is crude but will work most of the time. See an example of this at Greytower Technologies.
This Apache module does similar negotiation, but with the following advantages:
It can correctly handle relative quality values for different content-types based on the browser's Accept header
It will correctly send Vary headers and a unique ETag header for each response type, thus ensuring proxy caches will work correctly
Can perform character set negotiation based on the Accept-Charset header, taking into account the default character sets defined in RFC 2616 and RFC 3023
Can perform negotiation based on XHTML profiles using the optional "profile" parameter in the Accept header.*
Will correctly degrade caching for HTTP 1.0 proxies
Profiles are XML namespaces that refer to the XHTML variants, such as XHTML Basic, XHTML Mobile Profile, and so on. The profile parameter was introduced in section 8 of RFC 3236.
Requirements:
Apache 1.3, 2.x
mod_xhtml_neg 1.0 keywords