HTACCESS, Mod-Rewrite - Verzeichnisse "simulieren"
Andre
- sonstiges
Hallo liebes Forum.
Ich hatte bis jetzt fast nie etwas mit htaccess geschweige denn dem mod-rewrite zu tun.
Ich habe Seiten, die mit einem offensichtlichem rewrite gelaufen sind immer bestaunt - nun möchte ich es auch einbauen.
Es soll auch erstmal nur ganz "einfach" sein - trotzdem krieg ich es nicht hin :(
Ich versuche, meine Homepage folgendermaßen durch eine simulierte Verzeichnisstruktur zu erweitern:
(Info: der Ordner "anew" ist der Ordner für meine Testumgebung)
Request: http://example.com/anew[b]/festesverzeichnis/var2/var3[/b]
(Also die Testumgebung soll durch einen virtuellen Ordner namens "festesverzeichnis" (zum Abfangen in der .htaccess) ergänzt werden - dann folgen 2 Ordner, die die Variablen übergeben)
RewriteRule /(festesverzeichnis+)(/+)([a-z]+)(/+)([a-z]+)/ ?verz=$1&test2=$2&test3=$3
Ergebnis: Error 404
Gefordertes Ergebnis: Seite soll in Verbindung mit PHP die 3 Variablen ausspucken (schon eingebaut).
Zusatzinformation: Die 3 Pfade sollen mir als Variabelübergabe dienen. Sie dürfen (ja, im Beispiel nicht eingebaut - aber das hätte es ja nun auch nicht zum Laufen gebracht) Zahlen, Buchstaben (groß, klein) enthalten. Die erste Variable soll (nun doch) einen festen Namen haben, z.B. festesverzeichnis. Die anderen Beiden Variablen sollen frei wählbar sein.
Die Anfrage soll dann auf http://example.com/anew/index.php?verz=$1&test2=$2&test3=$3 umgeleitet werden.
Nur ich komme nicht weiter... Habe auch heute das erste Mal mit regulären Ausdrücken zu kämpfen.
Auch, wenn ich das feste Verzeichnis "/u/" nehmen möchte und dort ein variables Verzeichnis anhängen will (z.B. "blub") klappt es nicht.
Ich komme nicht weiter :(
Request: http://example.com/anew[b]/u/blub[/b]
(Wieder soll die Testumgebung durch einen virtuellen Ordner "u" ergänzt werden (wieder zum Abfangen in der .htaccess) und dann einen weiteren Ordner angehangen kriegen)
RewriteRule ^/u/([a-z]+)$ ?test1=$1
Ergebnis: Error 404
Gewünschtes Ergebnis: http://example.com/anew[b]/index.php?test1=$1[/b]
Es will aber nie so, wie ich will...
Lieben Dank an jeden, der sich meinem Müll antut. :)
Hatte vergessen, dass es hier kein [b] gibt.
Hier nochmal der korrekte Beitrag:
---------------------------------
Hallo liebes Forum.
Ich hatte bis jetzt fast nie etwas mit htaccess geschweige denn dem mod-rewrite zu tun.
Ich habe Seiten, die mit einem offensichtlichem rewrite gelaufen sind immer bestaunt - nun möchte ich es auch einbauen.
Es soll auch erstmal nur ganz "einfach" sein - trotzdem krieg ich es nicht hin :(
Ich versuche, meine Homepage folgendermaßen durch eine simulierte Verzeichnisstruktur zu erweitern:
(Info: der Ordner "anew" ist der Ordner für meine Testumgebung)
Request: http://example.com/anew/festesverzeichnis/var2/var3
(Also die Testumgebung soll durch einen virtuellen Ordner namens "festesverzeichnis" (zum Abfangen in der .htaccess) ergänzt werden - dann folgen 2 Ordner, die die Variablen übergeben)
RewriteRule /(festesverzeichnis+)(/+)([a-z]+)(/+)([a-z]+)/ ?verz=$1&test2=$2&test3=$3
Ergebnis: Error 404
Gefordertes Ergebnis: Seite soll in Verbindung mit PHP die 3 Variablen ausspucken (schon eingebaut).
Zusatzinformation: Die 3 Pfade sollen mir als Variabelübergabe dienen. Sie dürfen (ja, im Beispiel nicht eingebaut - aber das hätte es ja nun auch nicht zum Laufen gebracht) Zahlen, Buchstaben (groß, klein) enthalten. Die erste Variable soll (nun doch) einen festen Namen haben, z.B. festesverzeichnis. Die anderen Beiden Variablen sollen frei wählbar sein.
Die Anfrage soll dann auf http://example.com/anew/index.php?verz=$1&test2=$2&test3=$3 umgeleitet werden.
Nur ich komme nicht weiter... Habe auch heute das erste Mal mit regulären Ausdrücken zu kämpfen.
Auch, wenn ich das feste Verzeichnis "/u/" nehmen möchte und dort ein variables Verzeichnis anhängen will (z.B. "blub") klappt es nicht.
Ich komme nicht weiter :(
Request: http://example.com/anew/u/blub
(Wieder soll die Testumgebung durch einen virtuellen Ordner "u" ergänzt werden (wieder zum Abfangen in der .htaccess) und dann einen weiteren Ordner angehangen kriegen)
RewriteRule ^/u/([a-z]+)$ ?test1=$1
Ergebnis: Error 404
Gewünschtes Ergebnis: http://example.com/anew/index.php?test1=$1
Es will aber nie so, wie ich will...
Lieben Dank an jeden, der sich meinem Müll antut. :)
hi,
Ich hatte bis jetzt fast nie etwas mit htaccess geschweige denn dem mod-rewrite zu tun.
Tipp von mir: Verzichte auf URIs mit Parametern, Rewrite ist der beste Weg dazu. Wie das mit meinen Seiten gemacht wird, hab ich hier mal aufgeschrieben. Und falls Du noch die älteren Versionen von SELFHTML kennen solltest, die Idee mit den virtuellen Ordnern ist nicht von mir, praktisch war die in SELFHTML verwirklicht, also in den ersten Versionen, wo alle HTML-Dateien noch im Stammverzeichnis lagen.
An dieser Idee habe auch ich festgehalten und mehr: Ich bin der Meinung, dass eine komplette WebSite mit einer konsistenten Navigation auch ohne Mode_Rewrite funktionieren sollte. Erst wenn dies gegeben ist, lohnt es sich, über die Rewrite-Sache nachzudenken, beispielsweise um all die schönen URLs auf ein Script umzuschießen, was den Content einer jeden Einzelseite aus einer Datenbank holt was weitere Vorteile bietet wie die Verwendung von Templates, einheitliche Header/Footer und den Einbau einer Volltextsuche.
Viel Erfolg,
Hotte