[TYPO3-german] URL/Pfad umschreiben
Kay Strobach
info at kay-strobach.de
Fri Oct 5 14:09:44 CEST 2007
Hallo Michael,
Die reihenfolge der anweisungen ist interesant. deswegen sollten die
speziellen vor den weniger speziellen stehen.
so sollte es gehen..
RewriteRule ^keyword/(.*) index.php?id=8&query=$1
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:
siehe auch
http://www.modrewrite.de/mod_rewrite.apache.module.phtml
Grüße
Kay
Michael schrieb:
> 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