Задать вопрос
Sc0undRel
@Sc0undRel

Как составить регулярку для URL подкатегории?

Как правильно прописать регулярки для htaccess, чтобы открывались
site.ru/categoria/
site.ru/categoria/podcategoria/

RewriteRule ^([^.]+)/$ index.php?category=$1 [L]
RewriteRule ^([^.]+)/([^.]+)/$ index.php?category=$1&subcategory=$2 [L]


При такой записи урл site.ru/categoria/podcategoria/ создаёт GET параметр category = categoria/podcategoria

ВСЁ ВЕРНО?
RewriteRule ^(.*)/(.*)/$ index.php?category=$1&subcategory=$2 [L,QSA]
RewriteRule ^(.*)/$ index.php?category=$1 [L]
  • Вопрос задан
  • 196 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Stepik
    Регулярные выражения в Python
    1 неделя
    Далее
  • ProductStar
    Основы Java и ООП
    1 месяц
    Далее
  • Хекслет
    Java-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
RewriteCond %{REQUEST_URI} ^categoria/(.*)$ 
# если строка  начинается с categoria
RewriteCond %{REQUEST_URI} !^categoria/podcategoria/(.*)$ 
# защита от цикла ! - отрицание 
RewriteRule ^(categoria/)(.*)$ /$1/podcategoria/$2 [R=301,L] 
# добавит  у всего что есть категория подкатегорию


если же тебе нужно управлять самими гет запросами то опять же тебе нужна двухуровневая конструкция из кодн и рул. в таком случае будет все проще.
просто скину пример дальше сам разберешся, если нужно хосте куда делаешь редирект использовать гет, то там экранируй вопросы, иначе не сработает. Если же нужно убрать то наоборот поставь в конце вопрс.

# 301 --- http://shop.wildorchid.ru/Catalog/StyleCard.aspx?&sale=1&shop=7&categoryid=2046&style=26778 => http://shop.wildorchid.ru/catalog/nizhnee_bele/1010-defile/
RewriteCond %{QUERY_STRING} (^|&)sale=1($|&)
RewriteCond %{QUERY_STRING} (^|&)shop=7($|&)
RewriteCond %{QUERY_STRING} (^|&)categoryid=2046($|&)
RewriteCond %{QUERY_STRING} (^|&)style=26778($|&)
RewriteRule ^Catalog/StyleCard\.aspx$ /catalog/nizhnee_bele/1010-defile/? [L,R=301]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы