Параметры при редиректе на ссылку без слеша

Сhez

Создатель
Регистрация
15 Мар 2009
Сообщения
44
Реакции
28
Здравствуйте. Возникла проблема при установке редиректа в .htaccess со всех страниц со слешем на страници без слеша. Все работает корректно, но вот к примеру пагинации где ссылка вида сайт.ру/catalog/?pg=2 отдает 404, так как при редиректе убирается слеш и получается сайт.ру/catalog?pg=2. Подскажите, как добавить исключения, чтоб перед ?pg= и тому подобным не убирался слеш?
 
Здравствуйте. Возникла проблема при установке редиректа в .htaccess со всех страниц со слешем на страници без слеша. Все работает корректно, но вот к примеру пагинации где ссылка вида сайт.ру/catalog/?pg=2 отдает 404, так как при редиректе убирается слеш и получается сайт.ру/catalog?pg=2. Подскажите, как добавить исключения, чтоб перед ?pg= и тому подобным не убирался слеш?
Вы бы пример правил приводили для пущей наглядности...
А по сути: добавьте в блоке правила, которое убирает в конце слеш "конд", который будет проверять на пустоту строки параметров. Если параметров нет - редиректим...
Код:
RewriteCond {REQUEST_URI} *ваше правило проверки наличия слеша в урле*
RewriteCond {QUERY_STRING} ^$ #проверяем пуста ли строка параметров. Альтернативно можно проверить условие !.+
RewriteRule (*ваше правило проверки наличия слеша в урле*)\/$ /$1 [R=301, L]
 
Вы бы пример правил приводили для пущей наглядности...
А по сути: добавьте в блоке правила, которое убирает в конце слеш "конд", который будет проверять на пустоту строки параметров. Если параметров нет - редиректим...
Код:
RewriteCond {REQUEST_URI} *ваше правило проверки наличия слеша в урле*
RewriteCond {QUERY_STRING} ^$ #проверяем пуста ли строка параметров. Альтернативно можно проверить условие !.+
RewriteRule (*ваше правило проверки наличия слеша в урле*)\/$ /$1 [R=301, L]
Редирект сделан таким кодом
Код:
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
Подскажите, как правильно написать, я в htaccess не очень разбираюсь...
 
Редирект сделан таким кодом
Код:
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteRule ^(.*)(/)$ $1 [L,R=301]
Подскажите, как правильно написать, я в htaccess не очень разбираюсь...
Собственно как я и написал:
Код:
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteCond {QUERY_STRING} ^$
RewriteRule ^(.*)(/)$ /$1 [L,R=301]
 
Собственно как я и написал:
Код:
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteCond {QUERY_STRING} ^$
RewriteRule ^(.*)(/)$ /$1 [L,R=301]
проблема в том, что с таким кодом редирект со слешем в конце с обычных страниц не идет... По сути он вообще не работает...
 
хе-хе. тупонул, забыл поставить "%"перед кондом...
Пробуем...
Код:
RewriteCond %{HTTP_HOST} (.*)
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(.*)(/)$ /$1 [L,R=301]
 
Назад
Сверху