2010-02-03 4 views
0
RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)/[a-z\-_0-9\+]*/mp/(.*)(/{0,1})$ /main.php?id=$2&il[lang]=$1&$3 [L] 

RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)/[a-z\-_0-9\+]*/(.*)/mp/(.*)(/{0,1})$ /main.php?id=$2&il[lang]=$1&page=$3&$4 [L] 

RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)(/{0,1})/[a-z\-_0-9\+]*$ /main.php?id=$2&il[lang]=$1 [L] 

RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)/[a-z\-_0-9\+]*/([0-9]*)(/{0,1})$ /main.php?id=$2&il[lang]=$1&page=$3 [L] 

RewriteRule ^([a-z]{2}/){0,1}showCategory$ /main.php?id=0&il[lang]=$1 [L] 

Я использую эти строки и localhost/showCategory/ ОК, localhost/showCategory/0/1 ОК, localhost/showCategory/0/2 остается на первой странице ... (тот же 0/1) не хорошо В чем проблема?Htaccess RewriteRule вопрос

Когда я удалить этот /[a-z\-_0-9\+]* из строки 3 и 4, то это нормально,

но проблема с этим URL: http://localhost/showCategory/627/prodaja-automobila

+0

Я думаю, вы можете удалить круглые скобки вокруг (/ {0,1}). И убедитесь, что вы правильно используете обратные ссылки (я имею в виду цифры после $). – TonyCool

+0

как это правильно? –

+0

Пожалуйста, разместите примеры URL-адресов, которые должны быть проанализированы, со всеми переменными и примерным значением, что-то вроде http: // localhost/showCategory/627/prodaja-automobila/en/4/>> showCategory.php? Id = 627 & il [ lang] = en & page = 4 также, пример с вашим/mp/внутри него. – pixeline

ответ

0

Ваш заказ не является правильным, насколько я могу видеть : вы должны начать с правила, включающего большинство переменных, и заканчивать тем, у кого меньше всего.

RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)/[a-z\-_0-9\+]*/(.*)/mp/(.*)(/{0,1})$ /main.php?id=$2&il[lang]=$1&page=$3&$4 [L] 


RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)/[a-z\-_0-9\+]*/([0-9]*)(/{0,1})$ /main.php?id=$2&il[lang]=$1&page=$3 [L] 

#---------------------------- 
#Not sure this one is correct, if it is, it should be here i guess 
#---------------------------- 
RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)/[a-z\-_0-9\+]*/mp/(.*)(/{0,1})$ /main.php?id=$2&il[lang]=$1&$3 [L] 



RewriteRule ^([a-z]{2}/){0,1}showCategory/([0-9]*)(/{0,1})/[a-z\-_0-9\+]*$ /main.php?id=$2&il[lang]=$1 [L] 

RewriteRule ^([a-z]{2}/){0,1}showCategory$ /main.php?id=0&il[lang]=$1 [L] 
+0

та же проблема ... var_dump ($ _ GET) без этого/[az \ -_ 0-9 \ +] * массив (4) {["id"] => строка (1) "0" ["il "] => & array (1) {[" lang "] => string (0)" "} [" page "] => string (1)" 2 "[" sh "] => & NULL} с: массив (3) {["id"] => строка (1) "0" ["il"] => & array (1) {["lang"] => string (0) ""} ["sh" ] => & NULL} –

+0

такие вещи не имеют смысла: страница = $ 3 и $ 4 $ 4 никогда не будет поднята – pixeline

+0

Я использую rewriterule в первый раз Итак, что делать? –