Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: mod_rewrite: не срабататывает второе правило, все заканчивается на первом
 
 автор: Bvz   (27.04.2012 в 00:39)   письмо автору
 
 

есть фрагмент файла .htaccess:
RewriteRule ^([a-z]+)/([0-9]+)/?$ index.php?com=$1&id=$2 [L]
RewriteRule ^([a-z]+)/([0-9]+)/?$ index.php?com=$1&cat=$2 [L]


при обработке ссылки вида http://site.ru/article/1/ он получает правильные данные в массив $_GET, т.е. com=article, а id=1


но при обработке ссылки вида http://site.ru/news/1/ он получает неправильные данные в массив $_GET, а именно com=news, а id=1, а надо com=news, а cat=1, т.е. он применяет первое правило, и игнорирует пвторое, как сделать, чтоб он срабатывал как надо?

  Ответить  
 
 автор: cheops   (27.04.2012 в 17:16)   письмо автору
 
   для: Bvz   (27.04.2012 в 00:39)
 

Так регулярные выражений совершенно одинаковые? Создайте для news более узкое правило и разместите его перед более общим правилом, т.е. как-то так.
RewriteRule ^(news)/([0-9]+)/?$ index.php?com=$1&cat=$2 [L]
RewriteRule ^([a-z]+)/([0-9]+)/?$ index.php?com=$1&id=$2 [L] 

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования