Что не так с ЧПУ (редирект по параметру)?

Levitt

Профессор
Регистрация
20 Май 2008
Сообщения
361
Реакции
43
Плагин DISQUS для вордпресса, бывает добавляет в блоке релевантных ссылок параметр ?preview_id= и тем самым создает дубли страниц. Решил очищать выбранный параметр из строки. Беда в том, что он используется при предпросмотре страниц авторами в комплексе с добавлением параметра preview=true . Так вот, если нашли preview_id, проверяем есть ли preview=true - если нету редиректим на строку без параметра.

Посмотрите, что не так с кодом:
Код:
RewriteCond %{QUERY_STRING} (?:^|&)preview_id=([0-9]+)  #ищем preview_id
RewriteCond %{QUERY_STRING}  !(?:^|&)preview=true #ищем отсутствие preview=true
RewriteRule ^(.*)$ $1?  [L,R=301] #редиректим на урл без параметров
 
если нашли preview_id, проверяем есть ли preview=true - если нету редиректим на строку без параметра.
Может проще написать так:
Код:
RewriteCond %{QUERY_STRING} !preview=true #ищем отсутствие preview=true
RewriteCond %{QUERY_STRING} preview_id=[0-9]+  #ищем preview_id
RewriteRule (.*) $1?  [L,R=301] #редиректим на урл без параметров
 
Назад
Сверху