![]() |
Вопрос по mod_rewrite
Всем привет, прошу помочь...
На сайте ссылки вида Подарочная косметика Для женщин Для мужчин Если выбрано "Подарочная косметика " то урл имеет вид - "http://podarkov.net.ua/present_cosmetic.html" Если выбрано "Для женщин " то урл имеет вид - "http://podarkov.net.ua/present_cosmetic/dlya_zenchin.html" Второе решаеться правилом - RewriteRule ^(.*)/(.*).html$ view.php?cat=$1&podcat=$2 Но как быть с первым, если запишем RewriteRule ^/(.*).html$ view.php?cat=$1 то это правило перекроет приведенное выше и если нажать ссылку вида "Для женщин" то в $_GET[cat] = "present_cosmetic/dlya_zenchin", а не "dlya_zenchin"! как следует поступить? вариант может такой - проверяем урл если он вида http://site/present_cosmetic/dlya_zenchin.html запускаем правило RewriteRule ^(.*)/(.*).html$ view.php?cat=$1&podcat=$2 а если урл вида http://site/present_cosmetic.html то запускаем RewriteRule ^/(.).html$ view.php?cat=$1 НО КАК ТАКУЮ ПРОВЕРКУ РЕАЛИЗОВАТЬ В .htaccess ????? |
Ты ведь сам ответил на свой вопрос, что надо реализовать 2 правила :)
Код:
RewriteRule ^([^/]+)/([^/]+)\.html$ view.php?cat=$1&podcat=$2 |
Второе не перекроет первое... т..к запросы разные, в первом случае это "view.php?cat=$1&podcat=$2", а во втором "view.php?cat=$1", мод реврайт действует точно по rewriterule
|
Для того, чтобы сделать правило более приоритетным, размещай его выше, чем менее приоритетное, и ставь в конце
Код:
[L] |
Цитата:
|
Мде я былЪ неправ :)
|
Цитата:
RewriteRule ^(.*).html$ view.php?cat=$1 RewriteRule ^(.*)/(.*).html$ view.php?cat=$1&podcat=$2 При ссылке http://site/present_cosmetic.html $_GET[cat] = present_cosmetic При ссылке http://site/present_cosmetic/dlya_zenchin.html $_GET[cat] = present_cosmetic/dlya_zenchin т.е первое правило как бы говорит все, что после индекса в переменную $1( оно прекрівает первое :() но это нужно только когда ссылка вида http://site/present_cosmetic.html А при ссылке вида http://site/present_cosmetic/dlya_zenchin.html в эту переменную $1($_GET[cat] ), записивает present_cosmetic/dlya_zenchin Все начинает работать если первое правило отключить... Цитата:
|
Да, насколько я помню, поднимали уже тему про мод-реврайт... пользуйся поиском, может чего полезного найдешь :)
|
Если что, мой вариант чуть-чуть отличается от твоего ;) так что будет все как надо...
|
| Время: 16:39 |