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