Задать вопрос
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]
  • Вопрос задан
  • 195 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 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]
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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