comment: UA sniffing in Best Practice Recipes for Publishing RDF Vocabularies

In the mod_rewrite examples in "Best Practice Recipes for Publishing RDF 
Vocabularies", the rewrite condition

    RewriteCond %{HTTP_USER_AGENT} ^Mozilla/.*

looks problematic to me.  According to the text, this is meant to ensure 
that Internet Explorer 6 will receive the the HTML document in spite of 
a broken Content-Accept header. I'm not an expert on UA strings or 
mod_rewrite, but I believe this condition will actually be true for at 
least a dozen other UAs, some of which may be Semantic Web applications 
that are looking for the RDF version.

For historical reasons, "Mozilla" at the beginning of a UA string does 
not indicate any particular application or vendor. It merely indicates 
that the developer believes that their layout engine will render HTML 
the same way that the indicated version of Netscape Navigator will.  The 
specific application identifier comes later in the string.

Netscape Navigator 6+, Mozilla Suite, Mozilla Firefox, SeaMonkey, 
Konqueror, and probably several other web browsers put "Mozilla/5.0" at 
the beginning of their UA strings. Semantic Web clients built as Firefox 
extensions or XULRunner applications are also likely to have 
"Mozilla/5.0" at the beginning of their UA strings; some may just send 
Firefox's UA string.  I would suggest a more specific condition that 
targets ONLY the problem browsers, such as

    RewriteCond %{HTTP_USER_AGENT} MSIE

or

    RewriteCond %{HTTP_USER_AGENT} ^Mozilla/4.*

if matching Netscape 4.x is also desirable.  According to the Microsoft 
Knowledge Base, all versions of MSIE claim "Mozilla/4.0" compatibility.

-- 
M. Damian Dollahite

Received on Thursday, 6 April 2006 14:48:34 UTC