Обрезать параметры URL

Рейтинг: 2Ответов: 1Опубликовано: 02.04.2015

Изначально задача стоит сделать 301 редирект с site.ru/info.php?do=&skip=0 на site.ru/women/, но удалось только перенаправить с site.ru/info.php на site.ru/women/ таким образом:

RewriteCond %{QUERY_STRING} ^_route_=info.php$
RewriteRule ^(.*)$ http://site.ru/women/? [R=301,L]

Теперь осталось обрезать параметр do=&skip=0 Пытаюсь сделать так

RewriteCond %{QUERY_STRING} ^do= [NC]
RewriteRule ^(.*)info\.php $1? [R=301,L]

не работает. Подскажите как правильно. CMS ocStore 1.5.4.1

Опять же нерабочий вариант:

RewriteCond %{QUERY_STRING} ^do=
RewriteRule ^(.*)\.php\?(.*)$ $1\.php [R=301,NC,L]

Ответы

▲ 3

Два способа убрать запрос:

  1. Поставить в конце URL, на который редиректите, символ ?. Это будет интерпретировано как удаление запроса.

    RewriteRule ^from-path$ /to-path? [L,R=301]
    
  2. Добавить флаг [QSD]. Тот же самый эффект. Требуется Apache 2.4+.

    RewriteRule ^from-path$ /to-path [L,R=301,QSD]
    

Если первый не сработал, попробуйте второй.