[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