Seite 1 von 1

Es "hakt" beim zweiten Parameter...

Verfasst: 16.01.2009 00:22
von Rudo
Hallo @ALL!!

Ich bin bei meinen mod_rewrite Versuchen an einem Punkt gekommen, an dem ich trotz suchen im Forum nicht weiter komme und würd mich freuen dazu den einen oder anderen Tip zu bekommen.

Meine Links sind folgendermaßen aufgebaut:
kategoriebezeichnung-kategorieID.html

Die Übergabe an PHP wurde mit dieser RewriteRule umgesetzt:
RewriteRule ^([a-z]*)-([1-9][0-9]*).html artikel2kat.php?katID=$2

bis hierhin klappt alles wunderbar.

Ich habe jetzt allerdings auch Links die mehrere Parameter übergeben müssen:
kategoriebezeichnung-kategorieID/artikelbezeichnung-artikelbezeichnungID.html

Versucht habe Ich es mit der "erweiterten" RewriteRule von oben:
RewriteRule ^([a-z]*)-([1-9][0-9]*)/([a-z]*)-([1-9][0-9]*).html artikel.php?katID=$2&artID=$4
was jedoch nicht von Erfolg gekrönt war. (Zumal ich gerade dachte anhand der einfachen Übergabe eines Parameters zumindest etwas die mod_rewrite Syntax gechckt zu haben..!)

Kann mir dazu jemand eine Anregung geben?

Dann wäre da noch folgende Frage:
Ich habe ja jetzt immer wenigstens eine ID in der URI. Das finde ich eigentlich etwas "unschön". Gibt es eine Möglichkeit diese auch wieder aus der URI verschwinden zu lassen, die ID aber trotzdem zu übergeben?
Aus: www.doiman.de/kategoriebezeichnung-kate ... ungID.html
Wird: www.domain.de/kategoriebezeichnung/arti ... hnung.html

Für alle Tipps vorab vielen Dank ! ! !

Cheers

RUDO

Verfasst: 16.01.2009 00:37
von Gumbo
Probier mal Folgendes:

Code: Alles auswählen

RewriteRule ^([^/-]+-)+([1-9][0-9]*)\.html$ artikel2kat.php?katID=$2 [L]
RewriteRule ^([^/-]+-)+([1-9][0-9]*)/([^/-]+-)+([1-9][0-9]*)\.html$ artikel.php?katID=$2&artID=$4 [L]

Verfasst: 16.01.2009 16:15
von Rudo
Danke Markus,

hat super funktioniert!

Die ID´s müssen aber wohl in der URI bestehen bleiben, oder?

Nochmal vielen Dank für die schnelle Antwort!

Cheeers

Rudo

Verfasst: 16.01.2009 16:17
von Gumbo
Wenn die Bezeichnungen ebenso eindeutig sind wie die IDs, kannst du auch nur diese verwenden. Dann musst du in der Datenbank eben nach den Bezeichnungen suchen statt nach den IDs.