[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