http://kleider.herbaer.de
: htaccess-Dateien.htaccess
-DateienHier beschreibe ich Einstellungen in htaccess
-Dateien, die nicht an anderer Stelle beschrieben sind.
Das Unterverzeichnis
enthält Quelltexte und Erläuterungen. Die Surferin soll XSLT-Dateien sowohl als XML-Dateien mit der Transformation zu ihrer eigenen Darstellung als auch als Text (Quelltext) sehen können. Ich nutze das Suffix DOCUMENT_ROOT
/source?t
, um anzuzeigen, dass ein Dokument als Text zu übertrgen ist:
# DOCUMENT_ROOT
/source/.htaccess
RewriteCond %{QUERY_STRING} ^t$
RewriteRule . - [type=text/plain;charset=UTF-8]
In der Präsentation der Software finden sich Dateien unter einem anderen Pfad als in der „echten” Umgebung. Einige Verweise in XHTML- und XSTL-Dateien funktionieren daher nicht direkt. Mit Rewrite-Regeln leite ich gestörte Verweise um:
# DOCUMENT_ROOT
/source/.htaccess
# /source/style/desktop.xslt -> /source/sitestyle/desktop.xslt
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/source/sitestyle/$1 -f
RewriteRule ^style/(.+)$ sitestyle/$1 [DPI,L]
# /source/sitestyle/style/ixdesk.xslt -> /source/sitestyle/ixdesk.xslt
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/source/$1/$2 -f
RewriteRule ^([^/]+)/(?:[^/]+/)+([^/]+)$ $1/$2 [DPI,L]
# /source/sitestyle/style/ixdesk_help.xhtml -> /source/sitestyle/ixdesk_help.xhtml.de
RewriteCond %{REQUEST_FILENAME}.de !-f
RewriteCond %{DOCUMENT_ROOT}/source/$1/$2.de -f
RewriteRule ^([^/]+)/(?:[^/]+/)+([^/]+)$ $1/$2.de [DPI,L]
Die Quelltext-Dateien, die den XHTML-Text erzeugen, binden DocBook-Stylesheet-Dateien ein. Die Web-Präsentation des Quelltextes enthält Verweise auf die DocBook-Stylesheet-Dateien, die lokal auf meinem Rechner vorhanden sind, aber nicht auf dem Web-Server.
Ich beantworte Anfragen mit dem Code 404 (Dokument nicht gefunden) und verweise auf die Quellen und Hilfen zu DocBook. Deshalb leite ich Anfragen in das Verzeichnis e/db
um:
# DOCUMENT_ROOT
/.htaccess
RewriteRule ^usr/(?:.*/)docbook/(.*)$ e/db/$1
Das Verzeichnis e/db
enthält die Datei e/db/.htaccess
mit der Anweisung
ErrorDocument 404 /e/db/404.xhtml
Die Besucherin meiner Website soll leicht ihre bevorzugte Sprache wählen können. Dazu leite ich die URL-Pfade /l/
zu der Version in der Sprache LANG
/*LANG
um:
# DOCUMENT_ROOT
/l/.htaccess
RewriteEngine On
RewriteBase /
# Bilddateien hängen nicht von der Sprache ab
RewriteRule (?:[^/]+)/(.*?\.jpg)$ $1 [L]
# Zur Startseite?
RewriteRule ^([^/#]+)((?:#.*)?)$ l/$1/index.xhtml$2 [L,R]
RewriteRule ^([^/#]+)/$ index.xhtml.$1 [L]
# Bildergeschichte?
RewriteRule ^([^/]+)/(s2[^/#]+)((?:#.*)?)$ l/$1/$2/story.xml$3 [L,R]
RewriteRule ^([^/]+)/(s2[^/#]+)/((?:#.*)?)$ $2/story.xml.$1$3 [L]
# Existiert die Version in der gewünschten Sprache?
RewriteCond %{DOCUMENT_ROOT}/$2.$1. -f
RewriteRule ([^/#]+)/([^#]+)((?:#.*)?)$ $2.$1$3 [L]
# Wenn nicht,
# dann suchen wir mittels "content negotiation" die passende Version
RewriteRule ([^/]+)/(.*)$ $2 [L]