[TYPO3-german] URL/Pfad umschreiben
Michael
typo3ml at schams.net
Fri Oct 5 11:24:54 CEST 2007
Hallo,
ich nutze für eine Site RealURL und möchte alle Anfragen, die mit
"/keyword" beginnen (auch die Unterseiten), auf eine bestimmte Seite
(intern) umleiten. mod_rewrite eignet sich ja eigentlich bestens
dafür... alle meine Versuche scheitern jedoch :-(
Also:
Request: http://domain.de/keyword/
-> soll: http://domain.de/keyword/
Request: http://domain.de/keyword/foo
-> soll: http://domain.de/keyword/?query=foo
Request: http://domain.de/keyword/foo/bar
-> soll: http://domain.de/keyword/?query=foo/bar
Request: http://domain.de/keyword/foo/bar/schnubbel
-> soll: http://domain.de/keyword/?query=foo/bar/schnubbel
Es existieren also in Wirklichkeit keine Seiten "unterhalb" von
"/keyword", das wird dem Benutzer allerdings vorgespielt und ein eigenes
Plugin auf der Seite "/keyword" wertet die Parameter "query=..." aus.
Anfragen, die nicht mit "/keyword" beginnen, sollen wie üblich behandelt
werden (da kümmert sich ja dann RealURL drum):
Request: http://domain.de/impressum
-> soll: http://domain.de/impressum
Request: http://domain.de/kontakt/heinz
-> soll: http://domain.de/kontakt/heinz
In der .htaccess habe ich folgende Änderungen vorgenommen:
--- cut here ---
[...]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# (1) Zeile hinzugefügt:
RewriteCond %{REQUEST_URI} !^/keyword.*$
RewriteRule .* index.php [L]
[...]
# (2) Zeile hinzugefügt:
RewriteRule ^keyword/(.*) index.php?id=8&query=$1
--- cut here ---
Die erste Zeile (1) sollte bewirken, dass ein Redirect auf die index.php
für alle Anfragen die mit "/keyword" beginnen, an dieser Stelle noch
nicht gemacht werden soll.
Die zweite Änderung (2) baut den Request um, leitet den Besucher
(intern) auf die SeitenID=8 und übergibt alles nach "/keyword/" als
Parameter "query".
Das klappt jedoch leider nicht - es erscheint die Fehlermeldung:
Reason: File "foo" was not found!
(bei Zugriff auf: http://domain.de/keyword/foo)
bzw.:
Reason: "keyword/foo/bar" could not be found, closest page matching is
keyword/
(bei Zugriff auf: http://domain.de/keyword/foo/bar)
Der Request auf "http://domain.de/keyword/" funktioniert.
Eine nicht-interne Umleitung funktioniert auch: setze ich statt (2)
folgende Zeile ein, geht's:
--- cut here ---
[...]
# (2) Zeile hinzugefügt:
RewriteRule ^keyword/(.*) http://domain.de/index.php?id=8&query=$1 [L]
--- cut here ---
Die Eingabe von "http://domain.de/index.php?id=8&query=schnubbel/dubbel"
im Browser funktioniert dann natürlich auch.
Ich muss aber die Umschreibung der URL intern (für die Besucher nicht
sichtbar) realisieren.
Irgendwelche Ideen, Vorschläge, Tipps? Ich komme leider nicht mehr
weiter :-( Danke im voraus.
Gruß
Michael
More information about the TYPO3-german
mailing list