помогите сделать редирект http://site.com/category?p=1 на http://site.com/category

Это директива mod_alias. Из адреса /path?query с шаблоном сравнивается только /path.
Остальные варианты не работают т.к. в RewriteRule передается не ссылка, а путь до запрошенного файла. Так что GET параметров там нет, а искать их следует в %{QUERY_STRING}.
По mod_rewrite есть хорошоя статья Для просмотра ссылки Войди или Зарегистрируйся
Код:
RewriteCond %{QUERY_STRING} ^p=1$
RewriteRule ^(.*)$ /$1? [R=301,L]
Ну и не забывать ставить редиректы выше правил для ЧПУ.
Спасибо, только не пашет с Ajax - если я обновляю по F5 Для просмотра ссылки Войди или Зарегистрируйся все ок
 
А можно глянуть как сейчас выглядит весь .htaccess
 
Потестил у себя на машине и убедился код поставлен верно.
Работают и редиректы с /home на / и /folder/index.php на /folder/, а вот на sale.com они не работают.
Отсюда вывод или правите не тот файл или не влючена обработка .htaccess
 
Потестил у себя на машине и убедился код поставлен верно.
Работают и редиректы с /home на / и /folder/index.php на /folder/, а вот на sale.com они не работают.
Отсюда вывод или правите не тот файл или не влючена обработка .htaccess
Он то работает, но не отрабатывает если включен ajax, на странице Для просмотра ссылки Войди или Зарегистрируйся жму F5 (обнвоить страницу) все ок, переброс отработал верно
 
Тогда можно поправить условие с ^p=1$
Код:
RewriteCond %{QUERY_STRING} ^p=1(?:&|$)
RewriteRule ^(.*)$ /$1? [R=301,L]
Шаблон будет совпадать с p=1 и с p=1&is_ajax=1
 
Последнее редактирование:
В догонку, подскажите, как убрать index.php из ссылок
 
Редирект с site.com/index.php на site.com/ уже есть в вашем файле htaccess, который выкладывали в архиве.
Если ещё куда нужно, тогда вот
Код:
RewriteCond %{THE_REQUEST} " /index\.php"
RewriteRule ^ http://site.com/ [R=301,L]

И ещё по поводу ^p=1(?:&|$).
На случай если перед p=1 окажется SID и адрес будет такой SID=naqzr0ihd12cma0fuekcrceo60&p=1
Код:
RewriteCond %{QUERY_STRING} (?:^|&)p=1(?:&|$)
RewriteRule ^(.*)$ /$1? [R=301,L]
 
Назад
Сверху