Акция!  Домен 34 грн, домен 55 грн, домен  - 200 грн домен  - 65 грн, домен  - 99 грн, домен  - 56 грн!, домен  - 425 грн!
Мы используем cookie-файлы
Для оптимизации работы нашего сайта мы используем cookie-файлы. Продолжая использовать сайт, Вы соглашаетесь с использованием cookie-файлов.
  • RUB
  • USD
  • EUR
  • UAH
Чат техподдержки
Вы являетесь клиентом?
  • +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
7 лет
хостинг: есть
домен: нет
"Замещение" правил 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 в это время использует первое правило, вместо указанного второго. Если же второе правило поднять - то соответственно все наоборот. Ох и объяснил наверное:) В общем есть ли какие-то варианты жесткого ограничения этих правил? Чтобы преобразование принимало участие лишь при наличии определенной страницы, определенных параметров и т.д.? Кто подскажет?
Илья
7 лет
хостинг: есть
домен: есть
Все правильно, два правила одновременно работать не будут, так как 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
7 лет
хостинг: есть
домен: нет
да, уже разобрался. тут как вариант еще есть, указать в условии - [0-9], если параметр конечно состоит только из цифр.
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

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

Тема закрыта по истечению срока давности.