mod_rewrite: Umleitung mit 2 Parametern?
Sven
- webserver
0 Sven0 Sven
0 Gork auf Lork
Hallo ihr,
hinter dem etwas umständlich formulierten Titel steckt ein simples Problem: In einer .htaccess habe ich eine Umleitung drin, welche den Aufruf von profil_11.html umleitet zu profile.php?userid=11.
Das Ganze sieht so aus:
RewriteRule ^profil_([^/.]+)?.html$ profile.php?userid=$1 [L]
Meine Frage wäre jetzt: Wie baue ich einen zweiten Parameter ein? Ich möchte jetzt, dass seite_1_1.html geleitet wird zu: index.php?id=1&irgendwas=1
Wäre schon dankbar, wenn jemand einen Link hat, der mir da ein paar Hintergrundinfos bringt, mit denen ich das dann realisieren könnte.
Danke schonmal!
Lg
Sven
Hey,
also ich habs jetzt so hinbekommen:
RewriteRule ^seite_(.*)_(.*).html$ seite.php?test1=$1&test2=$2
Merkwürdig: Sobald ich die Endung von .html auf .png ändere, funktioniert das nicht mehr. Er zählt dann alles nach dem ersten Unterstrich zum ersten Parameter, auch den zweiten Unterstrich und das, was eigentlich der zweite Parameter sein soll.
Da aber die seite.php ein PNG-Bild generiert, und ich die Datei über <img src=""> auch direkt einbinde, hätte ich das natürlich lieber unter der Endung als PNG laufen.
Weiß jemand, womit das zutun hat?
Lg
Sven
Ok, der Fehler lag in meinem Script. Man sollte sich bei Auftreten eines Problems nicht auch noch ein zweites einbauen, und sich dann wundern... ;-)
Naja, der übliche "Grad-gepostet-und-schon-selbst-gelöst"-Effekt :-)
Ich möchte jetzt, dass seite_1_1.html geleitet wird zu: index.php?id=1&irgendwas=1
Textanfang ("^"), dann "seite_", gefolgt von einer oder mehreren Ziffern ("[0-9]+"), gefolgt von "_", gefolgt wiederum von einer oder mehreren Ziffern, gefolgt von ".html" und dem Ende ("$"). Die Ziffern wollen wir mitnehmen, also in runde Klammern setzen:
^seite_([0-9]+)_([0-9]+).html$ index.php?id=$1&irgendwas=$2
Wäre schon dankbar, wenn jemand einen Link hat, der mir da ein paar Hintergrundinfos bringt, mit denen ich das dann realisieren könnte.
mod_rewrite bzw. der Apache benutzen die PCRE-Bibliothek, die ihrerseits die Perl-Syntax nachbaut (PCRE = Perl-compatible regular expressions). PCRE ist unter http://pcre.org zu Hause, eine vernünftig formatierte Anleitung gibt es dort zwar leider nicht, aber beim PHP-Interpreter in der PCRE-Abteilung. Eine ganz kurze Hilfe gibt es auch in der Anleitung zu mod_rewrite.