Удаляем QUERY_STRING после редиректа в htaccess

понедельник, 2 августа 2010 г.

Может возникнуть ситуация, когда надо со старых динамических адресов сделать 301 редирект на новые, (псевдо-) статические адреса. То есть с адреса http://www.example.com/old_page.php?param=maram надо редиректить на http://www.example.com/new/controller/maram_param_purum/

Вот пример htaccess файла:

RewriteCond %{QUERY_STRING} ^param=maram [NC]
RewriteRule ^old_page.php /new/controller/maram_param_purum/ [R=301,L]


И редирекст сработает, но у вас получится url с добавленным в конце QUERY_STRING, от которого вы и хотели избавиться.
http://www.example.com/new/controller/maram_param_purum/?param=maram

Избежать этого поможет вопросительный знак вконце нового url, то есть

RewriteCond %{QUERY_STRING} ^param=maram [NC]
RewriteRule ^old_page.php /new/controller/maram_param_purum/? [R=301,L] 

2 коммент.:

Илья комментирует...

Огромное спасибо, работает!

Сергей комментирует...

Спасибо =)

Copyright © 2010 WEB IT blog