mod_rewrite Problem!

Scorpio

Mitglied
Hallo,

ich poste nun letztendlich bei euch. Bin recht verzweifelt weil ich mod_rewrite immernoch nicht zum laufen bekomme habe.

Also erstmal noch zu Anfang, ja, mod rewrite wird von meinem webspace unterstützt! ;)

So nun zu meinem Problem.

Ich habe in etwa folgende url:

" ../user/new "

im Endeffekt sollte diese auf " index.php?content=$content&$action=$action "
umgeleitet werden.
Wobei $content in meinem Beispiel "user" und $action hier "new" ist.

Wie kann ich das machen, wäre wirklich nett wenn jemand einen derartigen Code dafür mit hier posten könnte, damit ich ihn in die .htaccess Datei packen kann!

Mit freundlichem Gruß,
Scorpio

ps: die tutorials hier und anderswo habe ich schon durch! werd daraus nicht schlau! O.o
 
Zuletzt bearbeitet:
Probier’s mal mit Gemütlichkeit … äh, hiermit:
Code:
RewriteEngine on 
RewriteRule ^/(.*)/(.*)$ index.php?content=$1&action=$2
Ist aber ungetestet, keine Garantie, dass es läuft. Ich hab nur den Code eines Beispiels von modrewrite.de etwas modifiziert. Evtl. musst du die Slashes noch mit Backslashes escapen, ich kenn mich da nicht so aus.
 
Zuletzt bearbeitet:
Das funktioniert erstmal soweit! Danke dir!

Ich muss aber unbedingt auf die Variablen $content und $act noch anderweitig zugreifen können.


Sprich sie müssen in der index Datei mit vorhanden sein also ihren in der Url übergebenen werd annehmen! Wie mache ich das dann?

MfG
 
Äh … da sind sie doch? Oder nicht? Eigentlich müsstest du auf die bequem mit $_GET['content'] bzw. $_GET['action'] zugreifen können. Wenn das nicht klappt, dann ist die RewriteRule nicht korrekt. (Was sie übrigens ohnehin nicht ist, wie ich grad sehe, das Dollarzeichen vor action gehört da nicht hin.)
 
Die Variante mit $_GET["content"] funktioniert nicht. Die Variablen werden nicht erkannt, ich kann sie nicht verwenden. :(

Was ist an der RewriteRule noch falsch? (Das Dollerzeichen habe ich weg gemacht.)
 
Hm … hast du überprüft, ob die Variable leer ist oder ob sie überhaupt nicht vorhanden ist? Mach mal folgendes:
PHP:
<?php if (isset($_GET['content'])) {
    echo 'content-Variable gesetzt';
else {
    echo 'content-Variable nicht gesetzt';
}
Und schau dann mal, was rauskommt. Entweder klappt es gar nicht (sie wird nicht gesetzt), oder aber mit meiner RegExp stimmt irgendwas nicht und der Wert wird nicht richtig übertragen.
 
"content-Variable nicht gesetzt"

(Habe den Fehler in deine If-Then-Else Struktur mit dem fehlenden } entfernt.)
Ist also garnicht erst gesetzt. Wo liegt da der Fehler?
Ist durch mod_rewrite doch nichts übertragen worden oder muss mal die andere Url erst
irgendwie rückwandeln?
 
Crap.

Naja, ich kenn mich damit wie gesagt nicht sonderlich gut aus, aber vielleicht solltest du wirklich einfach mal die Slashes escapen (falls du das noch nicht getan hast). Wenn das auch nichts hilft, dann bin ich ratlos … :(
 
Naja. Ich habe das Problem jetzt auf eine komplett andere Art und Weise gelöst, nämlich indem ich die per REQUEST_URI übergebene URL zersplitte.
Klappt auch wunderbar und alle Variablen sind verfügbar, mod_rewrite nehme ich nurnoch für die Umleitung auf meine index.php!

Trotzdem danke an euch! ;)
 
Probier's mal mit folgender Regel:
Code:
RewriteEngine	on
RewriteBase	/
RewriteRule	^([^/]+)/([^/]+)/?$	?content=$1&action=$2
 
Zurück