Mod rewrite въпрос

mnis

Registered
Здравейте,
имам следния проблем:

domain.com/page.php?car=1&color=5&doors=2
Съответно: кола, цвят, брой врати

правя го така:
Код:
RewriteRule ([^/\.]+)_([^/\.]+)_([^/\.]+)$  page.php?car=$1&color=$2&doors=$3 [L]

и ми извежда:
domain.com/Опел_Металик_Две-врати
до тук добре.

Но:
Как да оформя ново правило за да ми извежда и следното
domain.com/Металик_Две-врати_Дизел
съответно чрез същата страница (но със съответните променливи):
page.php?color=5&doors=2&еngine=1

Проблема (поне според мен) е, че отново имам три параметъра и каквото и правило да напиша, все се взима това, което е първо:

Ако напиша следното:
Код:
RewriteRule ([^/\.]+)_([^/\.]+)_([^/\.]+)$  page.php?car=$1&color=$2&doors=$3 [L]
RewriteRule ([^/\.]+)_([^/\.]+)_([^/\.]+)$  page.php?color=$1&doors=$2&еngine=$3 [L]

тогава domain.com/Металик_Две-врати_Дизел не работи, а ако им разменя местата domain.com/Опел_Металик_Две-врати не работи....

Мисля, че цялата ми логика с mod rewrite не е както трябва....
Въобще как се процедира в случаите, когато имаме еднакъв брой променливи (параметри), които извикват една и съща страница (page.php в случая), но самите променливи са различни???

Голяма лудница с този mod rewrite!

Ще се радвам на всеки, които даде идея...
 
Ми направи си го по втория начин и когато искаш примерно да изкараш car color и doors правиш примерно така

domain.com/Опел_Металик_Две-врати_None

а ако искаш color doors engine

domain.com/None_Металик_Две-врати_Дизел

Просто променливата, която не използваш задаваш стойност None, но трябва да си я има като си я декларирал в мод rewrite.

За по - голяма прегледност на URL-a може да си го направиш така:

Код:
RewriteRule ([^/\.]+)_([^/\.]+)_([^/\.]+)$  page.php?car=$1&color=$2&doors=$3&engine=$4 [L]

И когато искаш да изкараш doors,color,car става така

domain.com/Опел_Металик_Две-врати

и в кода ти където разделяш отделните части на url-a и им задаваш стойност пишеш (Не знам точния ти код,но нещо от типа на )

if(isset($еngine)) { $engine = $_GET['engine']; } else { $engine = "None"; }

За врати,цвят мотор ще стане обаче така

domain.com/None_Металик_Две-врати_Дизел
 

Back
Горе