PDA

Vollstndige Version anzeigen : mod_rewrite -> RewriteCond -> wie muss das in diesem Fall aussehen?


mad-boy
02-07-2004, 16:30
Hi,
also keine Sorge, mod_rewrite luft (man glaubt es kaum) :D Nun hnge ich gerade an einer RewriteRule! Ich will praktisch sowas:

RewriteRule ^(.*)personen/(.*)/show.html$ $1personen/show.php?id=$2&type=
RewriteRule ^(.*)personen/(.*)/(.*)/show.html$ $1personen/show.php?id=$2&type=$3

Also wenn nach personen/ nur ein Verzeichnis kommt dann soll er type= leer lassen, kommen 2 Verzeichnisse soll er das 2. Verzeichnis als type=... setzen, leider berschreibt die RewriteRule mit dem einen Verzeichnis aber immer die mit den 2 Verzeichnissen, egal ob ich sie oben oder unten hin setze! Irgendeine Idee wie man das lsen kann?

Schonmal thx!

Gruss, Michael

bazubi
02-07-2004, 18:41
Du kannst hinter die erste ReWrite Rule ein [L] (also mit dem []) setzen, dass steht fr Leave und sorgt dafr, dass die Rewriteverarbeitung nach der Regel abgebrochen wird. Ansonsten gbs noch die Mglichkeit die zweite Rule nach oben zu schieben und dahinter ein [S=1] zu setzen. Das sorgt dafr, dass wenn die erste Rule funktioniert die nchste bersprungen (geSKIPet) wird.

mad-boy
02-07-2004, 20:02
Danke, funktioniert wunderbar! :)

//EDIT: Ok noch eine Frage! :)

Ich mchte nun das ich mir hinten das show.html sparen kann! Also das ganze soll jetzt wie bei echten Ordnern laufen: ich mchte bei
/personen/MeinName
/personen/MeinName/
/personen/MeinName/index.html

immer auf die gleiche Datei weiter geleitet werden, wie mache ich das?

mad-boy
02-07-2004, 21:56
Man sollte doch meinen mit

RewriteRule ^(.*)personen/(.*)/?$ $1personen/show.php?id=$2&TEMPLATE_FILE=show.html

kann ich zumindest hinten schonmal entweder den / schreiben oder ihn weg lassen, interessanterweise wird aber dann komischerweise bei show.php?id=show.php gesetzt! Hat jemand dafr ne Erklrung? Die Condition davor wird dadurch komischerweise auch unbrauchbar:

RewriteRule ^(.*)personen/(.*)/(.*)/show.html$ $1personen/show.php?id=$2&type=$3 [S=1]