Ich kann schlecht mit URLs wie http://kleider.herbaer.de/s2014w16/story.xml#s24_26gsyfh0_0
für meine Website werben. Besser ist eine sprechende URL wie http://kleider.herbaer.de/aktuell/schwarzer-minirock
. Diese "sprechenden URLs" stelle ich in einer XML-Datei (supplement/redirects.xml
) zusammen, die wie dieses Beispiel aufgebaut ist:
<?xml version="1.0" encoding="utf-8"?> <!-- file KLEIDER/web/src/aktuell/redirects.xml --> <!-- Beispiel für eine Quelldatei der "Umleitungen" --> <redirects xmlns="http://herbaer.de/xmlns/20140430/redirects/"> <redirect> <text>Schwarzer Minirock</text> <text>Minirock</text> <relurl>s2014w16/story.xml#s24_26gsyfh0_0</relurl> </redirect> <redirect> <relurl>s2014w16/story.xml#s2_26gsyf5c_0</relurl> <text>Rotes Tanzkleid</text> <text>Tanzkleid</text> </redirect> <redirect> <relurl>s2014w27/story.xml</relurl> <text>Kathrin</text> </redirect> </redirects> <!-- end of file KLEIDER/web/src/aktuell/redirects.xml -->
Die Datei redirects.rng
beschreibt den Aufbau.
Die umgeleiteten URLs (relativ zur Server-Wurzel) beginnen mit /aktuell/
. Die Datei aktuell/.htaccess
im Server-Verzeichis leitet die URLs um. Sie ist so aufgebaut:
# file KLEIDER/web/src/aktuell/htaccess.tmp # Beispiel einer "Umleitungsdatei" RewriteEngine On RewriteBase / RewriteRule ^schwarzer[-_]?minirock$ s2014w16/story.xml#s24_26gsyfh0_0 [NC,NE,R=301,L] RewriteRule ^minirock$ s2014w16/story.xml#s24_26gsyfh0_0 [NC,NE,R=301,L] RewriteRule ^rotes[-_]?tanzkleid$ s2014w16/story.xml#s2_26gsyf5c_0 [NC,NE,R=301,L] RewriteRule ^tanzkleid$ s2014w16/story.xml#s2_26gsyf5c_0 [NC,NE,R=301,L] RewriteRule ^kathrin$ s2014w27/story.xml [NC,NE,R=301,L] RewriteRule ^schwarzer[-_]?mini s2014w16/story.xml#s24_26gsyfh0_0 [NC,NE,R=301,L] RewriteRule ^mini s2014w16/story.xml#s24_26gsyfh0_0 [NC,NE,R=301,L] RewriteRule ^rotes[-_]?tanz s2014w16/story.xml#s2_26gsyf5c_0 [NC,NE,R=301,L] RewriteRule ^tanz s2014w16/story.xml#s2_26gsyf5c_0 [NC,NE,R=301,L] # end of file KLEIDER/web/src/aktuell/htaccess.tmp
Die Datei aktuell/.htaccess
wird mit der Transformation redirects_htaccess.xslt
aus supplement/redirects.xml
erzeugt.
Die Datei aktuell/index.xhtml
im Server-Verzeichis enthält eine Übersicht über die "sprechenden URL". Sie wird aus der Quelldatei supplement/redirects.xml
durch die Transformation redirects_ht.xslt
(Text) erzeugt. Das erzeugte XHTML-Dokument nutzt die Dateien redirects.css
(Quelltext), redirects.js
(Quelltext) sowie style/common.js
.
Die Dateien redirects.css
(Quelltext) und redirects.js
(Quelltext) werden per XInclude in die Transformation eingebunden. Das erfolgt genauso wie zur Darstellung der Bildergeschichten mit denselben Dateien styleincl_step_1.xslt
und styleincl_step_2.xslt
. Die Transformation mit den eingebundenen Dateien erzeugt die XHTML-Datei aktuell/index.xhtml
.
Mit kleinen Anpassungen kann von der Einbindung der Javascript- und CSS-Dateien per XInclude abgesehen werden. Die XHTML-Datei enthält dann Verweise auf Dateien, die der Browser einbindet. Man kann auch die Quelldatei supplement/
mit einem Verweis auf eine XSLT-Transformation (wahlweise mit eingebundenen Javascript- und CSS-Dateien) an den Browser senden und die Transformation dem Browser überlassen. Diese Varianten erfordern aber mehr Server-Anfragen (Request) und sind allenfalls zur Fehlersuche oder Fehlerbehebung nützlich.redirects.xml
Das Skript redirects
(Quelltext) führt die nötigen Schritte nach einer Änderung der Datei supplement/
aus.redirects.xml
Die Internationalisierung und Lokalisierung der sprechenden URL ist schwierig. Einfacher ist die Internationalisierung und Lokalisierung der Texte zu den URL. Sofern die Quelldatei supplement/
in verschiedenen Sprachen vorliegt, kann auch die Übersichtsdatei redirects.xml
in verschiedenen Sprachen erzeugt werden. Abhängig von der Sprache der Quelldatei bindet die Transformation DOCROOT
/aktuell/index.xhtmlredirects_ht.xhtml
die Lokalisierungsdatei local.xml.
ein.LANG