Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

17.05.2007, 16:22
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
Вопрос по 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 ?????
Последний раз редактировалось Naydav; 17.05.2007 в 16:27..
|
|
|

17.05.2007, 18:58
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
Ты ведь сам ответил на свой вопрос, что надо реализовать 2 правила
Код:
RewriteRule ^([^/]+)/([^/]+)\.html$ view.php?cat=$1&podcat=$2
RewriteRule ^([^/]+)\.html$ view.php?cat=$1
|
|
|

17.05.2007, 19:11
|
|
Участник форума
Регистрация: 07.01.2007
Сообщений: 259
Провел на форуме: 309455
Репутация:
41
|
|
Второе не перекроет первое... т..к запросы разные, в первом случае это "view.php?cat=$1&podcat=$2", а во втором "view.php?cat=$1", мод реврайт действует точно по rewriterule
|
|
|

17.05.2007, 19:23
|
|
Постоянный
Регистрация: 14.01.2007
Сообщений: 459
Провел на форуме: 1469995
Репутация:
589
|
|
Для того, чтобы сделать правило более приоритетным, размещай его выше, чем менее приоритетное, и ставь в конце .
Последний раз редактировалось Helios; 17.05.2007 в 19:33..
|
|
|

17.05.2007, 19:34
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
Сообщение от Raz0r
Второе не перекроет первое... т..к запросы разные, в первом случае это "view.php?cat=$1&podcat=$2", а во втором "view.php?cat=$1", мод реврайт действует точно по rewriterule
А ты попробуй 
|
|
|

18.05.2007, 11:42
|
|
Участник форума
Регистрация: 07.01.2007
Сообщений: 259
Провел на форуме: 309455
Репутация:
41
|
|
Мде я былЪ неправ 
|
|
|

18.05.2007, 12:39
|
|
Постоянный
Регистрация: 30.12.2006
Сообщений: 434
Провел на форуме: 849583
Репутация:
210
|
|
Ты ведь сам ответил на свой вопрос, что надо реализовать 2 правила
Содержание .htaccess:
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
Все начинает работать если первое правило отключить...
вариант может такой -
проверяем урл если он вида
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 ?????
Последний раз редактировалось Naydav; 18.05.2007 в 12:41..
|
|
|

18.05.2007, 14:12
|
|
Участник форума
Регистрация: 07.01.2007
Сообщений: 259
Провел на форуме: 309455
Репутация:
41
|
|
Да, насколько я помню, поднимали уже тему про мод-реврайт... пользуйся поиском, может чего полезного найдешь 
|
|
|

18.05.2007, 20:26
|
|
Постоянный
Регистрация: 23.04.2006
Сообщений: 622
Провел на форуме: 5887054
Репутация:
1292
|
|
Если что, мой вариант чуть-чуть отличается от твоего  так что будет все как надо...
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|