@arty_sh

Как настроить исключения в .htaccess?

Дано:
1) Сайт - domen.ru
2) domen.ru/products/name_category/ - ведет на файл products.php и обрабатывается категория магазина
3) RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..{1,10}$
RewriteCond %{REQUEST_URI} !(.*)/$

RewriteRule ^products/(.+[^/])/(.+[^/])/?$ products.php?category[]=$1&category[]=$2 [L,NC,QSA]
RewriteRule ^products/(.+[^/])/?$ products.php?category[]=$1 [L,NC,QSA]

Цель:
1) Убрать products из url

Я хотел сделать, чтобы ссылка вида domen.ru/category/ сразу вела на обрабатывающий файл. А другие страницы сделать обычными исключениями, например, domen.ru/contacts/ (чтобы вела на contacts.php).

Прописал такое правило:
RewriteRule ^(.+[^/])/?$ products.php?category[]=$1 [L,NC,QSA]

И для исключений:
RewriteRule ^contacts/?$ contacts.php [L,NC]

Но теперь все страницы ведут по этому правилу: RewriteRule ^(.+[^/])/?$ products.php?category[]=$1 [L,NC,QSA]

Менял строки местами, но не помогает. Подскажите что можно сделать. Заранее, спасибо.
  • Вопрос задан
  • 196 просмотров
Пригласить эксперта
Ответы на вопрос 1
shambler81
@shambler81 Куратор тега htaccess
Тут все просто
1. ДОбавить исключение ты уже умеешь это ! в RewriteCond
так что добавь еще один конд
конд
конд
конд
конд
что делать

Теперь про отрезать
как я понял ты регулярки немного знаешь так что понимаешь что такое $1$2 и и тд - если нет эт овсе что в скобках, какие скобки по очереди тот и бакс.
Но это сработает на руле, а условия тебе нужны в конде
ТАк вот Баксы с конда выгледят вот так %1 %2
В таком случае.
RewriteCond %{REQUEST_URI}  (скобка первая) ляляля ( скобка вторая)
RewriteRule .* %1%2

Соответственно получешь редирект на то что в скобках минуя ляляля. Но и это еще не все
У тебя ошибка в редиректе НА гет он тупо не сработает
экранируй все ? в - куда
иначе они просто не появятся.

Если не достаточно то вот пара примеров
klondike-studio.ru/blog/snipet-for-htaccess
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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