it-swarm.com.de

htaccess Problem beim Umschreiben

Vielleicht ist der beste Weg, um mein Problem in einem Beispiel zu zeigen.

In meinem .htaccess:

RewriteRule ^catalog/[a-z0-9_-]+-([0-9]+)/[a-z0-9_-]+-([0-9]+)/[a-z0-9_-]+-([0-9]+)/  index.php?act=catalog&category=$1&color=$2&size=$3 [NC,L]

Mit der Adresse www.site.com/catalog/category-1/red-3/size-3/ funktioniert das ausgezeichnet

Aber wenn Sie die Größe weglassen, wie zum Beispiel www.site.com/catalog/category-1/red-3/, werde ich zu www.site.com weitergeleitet.

Ich möchte alle Artikel mit der Kategorie ID 1 und der Farbe ID 3 anzeigen.

2
user778441

Sie können optionale Teile haben, wenn Ihr Skript PHP einen leeren Parameter size akzeptiert und dann das tut, was Sie wollen.

Versuche dies:

RewriteRule ^catalog/[a-z0-9_-]+-([0-9]+)/[a-z0-9_-]+-([0-9]+)/([a-z0-9_-]+-([0-9]+)/)?  index.php?act=catalog&category=$1&color=$2&size=$4 [NC,L]

Die wichtigsten Änderungen sind eine weitere Gruppe in Klammern, gefolgt von einem ? (optional) und eine Anpassung der Erfassungsnummer von $ 3 auf $ 4 (da die Erfassungsgruppe für die Größe jetzt die vierte ist). (Anstelle der Nummernänderung hätten wir wohl auch (?: anstelle des hinzugefügten ( verwenden können.)

2
Paŭlo Ebermann

Sie müssen eine andere rewrite -Regel schreiben, um der Option zu entsprechen, dass keine Größe angegeben wird:

RewriteRule ^catalog/[a-z0-9_-]+-([0-9]+)/[a-z0-9_-]+-([0-9]+)/ index.php?act=catalog&category=$1&color=$2 [NC, L]

Setzen Sie das als Ihr second umschreiben, da es am wenigsten spezifisch ist.

1
Connor Smith