Posts tagged ‘htaccess’

.htaccess: 301 редирект php-страниц с параметрами.

Я не он, я только учусь) Из-за нужд seo пришлось делать этот самый безопасный для них redirect.
В Интернете много примеров, как пользоваться .htaccess, в частности есть отличная статья на хабре про его дао: тут.
Но там в основном рассматриваются варианты перенаправления статических html-страниц или классический случай домена с www и без него.
А что делать, если возникла странная задача: сделать редирект страницы http://www.example.ru/index.php?id=16 на http://www.example.ru/index.php?id=17 ?
Простой редирект(без RewriteEngine) не даст ничего или сайт упадет с ошибкой 500.
Сделать, как со статическими страницами: RewriteRule index.php?id=16 на /index.php?id=17 [R=301,L] тоже ничегошеньки не даст. Только сайт тут не упадет, что в принципе бонус.
Все дело в том, что в исходной строке есть параметры (все, что после знака вопроса).
Поэтому делаем так:

RewriteCond %{QUERY_STRING} ^id=16$
RewriteRule ^index.php /index.php?id=17 [L,R=301]

По сути это означает следующее: если в URL есть подстрока параметров id=16, то подставить /index.php?id=17, вместо того, что сейчас обрабатывается (а это все то же URL. RuleEngine параметры не смотрит, и URL для него просто строка — абсолютный путь до файла, содержащего страницу. Так что где .htaccess — там и «корень» URL. Кроме того, apache будет крутить эту строку столько раз через правила .htaccess, пока она не перестанет меняться.). enjoy!

Реклама

Февраль 2, 2012 at 16:22 14 комментариев