301 редирект для ссылок вида /index.php?pageID=1

2012-06-30 11:12:00


Насколько хорош был ваш первый сайт? Когда я делал свой первый сайт, я не шарил ни в ЧУП, ни в Сео-оптимизации. Шли месяцы, годы, я набирался опыта и постепенно занимался доработкой своего родоначального проекта. В этой статье я расскажу о том решении, которое мне самому потребовалось в процессе доработки своего проекта.
Речь пойдет о внутренних ссылках сайта и ЧПУ. ЧПУ расшифровывается как «человеко-понятные урл». Продемонстрирую на примере.

301 редирект

Не ЧПУ:


sergeivl.ru/index.php?pageID=1

sergeivl.ru/index.php?cat=1&page=2

sergeivl.ru/index.php?PageAlias=MyWorks

ЧПУ:


sergeivl.ru/1

sergeivl.ru/cat1/2

sergeivl.ru/MyWorks.html

Согласитесь, ссылки с ЧПУ выглядят намного привлекательней. Да и поисковые системы их любят больше. Как же нам преобразовать первый столбец url-лов в ЧПУ? В этом нам поможет модуль веб-сервера Apache под названием Mod Rewrite. Чтобы его активировать, вам потребуется отредактировать файл «.htaccess». Добавьте следующие строки в данный файл:

RewriteEngine on

RewriteRule ^([0-9]+)$ /index.php?pageID=$1 [L]

RewriteRule ^cat([0-9]+)/([0-9]+)$ /index.php?cat=$1&page=$2 [L]

RewriteRule ^([a-zA-Z0-9_-]*).html$ /index.php?PageAlias=MyWorks[L]

Теперь страницы сайта будут доступны по ЧПУ ссылкам. Хотя старый вариант url-лов тоже будет работать. Такой подход годиться, если сайт еще не проиндексирован в поисковых системах. Но представьте себе. Вашему сайту уже исполнился год, несколько сотен страниц проиндексированы поисковиками, некоторые из них занимают высокие позиции в выдаче. А у вас все ссылки вида sergeivl.ru/index.php?cat=5&page=HalloWorld.

Даже если вы замените все ссылки на страницах на ЧПУ ссылки, в выдаче будут и старые и новые ссылки. В итоге дубляжи страниц и опускания их в выдаче поисковых систем. Но решение есть — 301 редирект. Сделаем 301 редирект с адреса sergeivl.ru/index.php?cat=5&page=HalloWorld на sergeivl.ru/cat5/HalloWorld.html.

RewriteEngine on

RewriteCond %{REQUEST_URI} ^/index.php

RewriteCond %{QUERY_STRING} ^cat=([0-9]+)&page=([a-zA-Z0-9_-]*)

RewriteRule ^.*$ cat%1/%2.html? [R=301,L]

Благодаря этому наглядному примеру вы сможете легко реализовать 301 редирект с не ЧПУ на ЧПУ у себя на сайте. При этом позиции в выдаче в поисковых системах никак не пострадают. Если у вас возникли вопросы — пишите их в комментариях или через форму обратной связи.