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

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

Войти через центр авторизации
Похожие вопросы