Вторник, 29 Янв 2013 в 12:14
301 редирект через .htaccess на новые страницы
Недавно, в связи с переделыванием сайта клиента , мне потребовалось сделать редирект со старых страниц сайта на новые. Все можно было оставить как есть, но необходимо мне это было потому, что данные страницы сайта имели PR и ссылочную массу, поэтому терять этого не хотелось.
Для начала, я расскажу о типичных способах редиректа через htaccess. Информация не претендует на уникальность.
При 301 редиректе получается склейка старого и нового адреса сайта. Параметры ТИЦ и ПР также будут переданы новому адресу URL.
301 редирект www на без-www
Применяется когда нужно перенаправить с URL вида http://www.site.ru на http://site.ru.
Необходимо вносить изменения в файл .htaccess в корневой директории сайта.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Редирект всех файлов в папке на один файл
Если вам больше не нужен определенный раздел сайта (например new1) и нужно перенаправить все запросы к папке (/new1) на один файл /new.php
Для этого в .htaccess добавляем следующий код
RewriteRule ^new1(.*)$ /new.php [L,R=301]
В случае если требуется перенаправить все файлы кроме одного, например:
все файлы из папки /new1 должны редиректится на файл /new.php, кроме файла /new1/photos.html, который должен перенаправляться на /new_photos.html, пишем следующий код:
RewriteRule ^new1/photos.html /new_photos.html [L,R=301]
RewriteRule ^new1(.*)$ /new.php [L,R=301]
Редирект динамического URL на новый файл
Если есть необходимость сделать редирект динамического URL на новый статический файл
RewriteRule ^article.jsp?id=(.*)$ /news.htm [L,R=301]
То есть теперь, запрос к файлу вида http://www.site.ru/article.jsp?id=3232 и/или http://www.site.ru/article.jsp?id=8745будет отправлен на файл http://www.site.ru/news.htm
Редирект с помощью директивы Redirect или RedirectPermanent модуля mod_alias
Для использования необходимо включить модули mod_alias (для поддержки директив Redirect, RedirectPermanent и RedirectMatch) и/или mod_rewrite (для использования реврайта) в php.ini
Несмотря на такое страшное название, все просто.
Redirect 301 /old-page.html http://site.ru/new-page.html
или
Redirect permanent /old-page.html http://site.ru/new-page.html
Однако, у этого способа есть недостаток – все адреса, которые необходимо перенаправить, нужно перечислять один за одним, каждый отдельно.
В моем случае, как раз, было всего 4 файла, которые мне необходимо было перенаправлять. Причем были они вида:
razdel/ (как бы индексная страница)
razdel/old-page1.html
razdel/old-page2.html
razdel/old-page3.html
Теперь внимание, фишка, которую обнаружил экспериментальным путем. Страницу, которая является корнем, ставим в самый конец. Это пощволит перенаправлять посетителей на требуемые страницы. То есть
Redirect 301 razdel/old-page1.html http://site.ru/new-page1.html
Redirect 301 razdel/old-page2.html http://site.ru/new-page2.html
Redirect 301 razdel/old-page3.html http://site.ru/new-page3.html
Redirect 301 razdel/ http://site.ru/some-page.html
- Category: Сайтостроение
- Ваш отзыв