Мы используем cookie-файлы
Для оптимизации работы нашего сайта мы используем cookie-файлы. Продолжая использовать сайт, Вы соглашаетесь с использованием cookie-файлов.
  • UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепр
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 170-15-42  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 630-90-82  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

Хостинг. "Замещение" правил mod_rewrite

Форумы Хостинг "Замещение" правил mod_rewrite
eyemchenko
16.11.2011
хостинг: есть
домен: нет
"Замещение" правил mod_rewrite
А у меня такая вот загогулина. Есть к примеру 2 url и два правила:
1)menu.php?id=*
RewriteRule ^([^/]*)/$ /menu.php?id=$1 [L,QSA]

2)products.php?s=*
RewriteRule ^([^/]*)/$ /products.php?s=$1 [L,QSA]

Url преобразуется в нужный нам вид типа www.example.com/example/, с этим все нормально. Проблема вот в чем - правило нормально работает лишь то, которое указывается раньше, чем предыдущее, т.е. если первое правило стоит выше 2-ого, то нормально работает лишь страница menu.php, а products.php в это время использует первое правило, вместо указанного второго. Если же второе правило поднять - то соответственно все наоборот. Ох и объяснил наверное:) В общем есть ли какие-то варианты жесткого ограничения этих правил? Чтобы преобразование принимало участие лишь при наличии определенной страницы, определенных параметров и т.д.? Кто подскажет?
Илья
23.11.2011
хостинг: есть
домен: есть
Все правильно, два правила одновременно работать не будут, так как mod_rewrite при запросе /test/ не знает куда отправлять пользователя на страницу menu.php или products.php.
Нужно разделить правила, например так:
RewriteRule ^menu/([^/]*)/$ /menu.php?id=$1 [L,QSA]
RewriteRule ^products/([^/]*)/$ /products.php?s=$1 [L,QSA]
и соответственно формировать ссылки (/products/test/, /menu/test/).
eyemchenko
24.11.2011
хостинг: есть
домен: нет
да, уже разобрался. тут как вариант еще есть, указать в условии - [0-9], если параметр конечно состоит только из цифр.
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Тема закрыта по истечению срока давности.
Горячая линия
(044)
392 74 33
другие города