style/.htaccess: geräteabhängige Ansicht


Die Datei DOCUMENT_ROOT/style/.htaccess (style.htaccess) verbindet die URL /style/index.xslt, style/imgshow.xslt und /style/sitemap.xslt abhängig vom anfragenden Browser (HTTP-Header User-Agent) mit verschiedenen Dateien:

RewriteEngine On
RewriteBase /style/

Wenn die Bezeichnung des Browsers das Wort Mobile enthält, wird die relative URL imgshow.xslt mit der Datei mobile.xslt (Text) verbunden, sonst mit der Datei pinw.xslt.

RewriteCond %{HTTP:User-Agent} \b[Mm]obile\b
RewriteRule ^imgshow.xslt$ mobile.xslt    [S=5]
RewriteRule ^imgshow.xslt$ pinw.xslt      [S=4]

Ähnlich werden die relativen URL index.xslt und sitemap.xslt umgeleitet:

RewriteCond %{HTTP:User-Agent} \b[Mm]obile\b
RewriteRule ^index.xslt$ ixmobile.xslt    [S=3]
RewriteRule ^index.xslt$ ixdesk.xslt      [S=2]

RewriteCond %{HTTP:User-Agent} \b[Mm]obile\b
RewriteRule ^sitemap.xslt$ smmobile.xslt  [S=1]
RewriteRule ^sitemap.xslt$ smdesk.xslt

Leider läßt sich der Response-Header Vary abhängig vom Request schlecht konfigurieren. Für alle XSLT-Dateien füge ich User-Agent in den Response-Header Vary ein:

<FilesMatch "\.xslt">
Header merge Vary User-Agent
</FilesMatch>