Разработка сайтов и оптимизация  
   
 
 
Контакты  Разработка сайтов Портфолио Мы
 TengyStudio » Переадресация с помощью mod_rewrite

Переадресация с помощью mod_rewrite

Основной хост

Для корректной индексации сайта поисковыми системами (индексация всех страниц сайта либо с префиксом www т.е. www.tengy.ru, либо без префикса www т.е. tengy.ru) помимо указания хоста в файле robots.txt желательно обеспечить переадресацию со страниц с некорректными адресами.

Например, при запросе страницы вида

Для сервера Apache это можно реализовать при помощи модуля Mod_rewrite в конфигурационном файле сервера .htaccess

RewriteEngine On
RewriteCond %{HTTP_HOST} ^tengy.ru$ [NC]
RewriteCond %{REQUEST_URI} !^/robots.txt$
RewriteRule ^(.*)$ http://www.tengy.ru/$1 [R=301,L]

Главная страница

Для переадресации страниц на главную страницу вида http://www.tengy.ru создаем следующие правила переадресации:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/index.php$
RewriteRule .+ http://www.tengy.ru/ [R=301,L]
RewriteCond %{REQUEST_URI} ^/index.html$
RewriteRule .+ http://www.tengy.ru/ [R=301,L]
RewriteCond %{REQUEST_URI} ^/index.htm$
RewriteRule .+ http://www.tengy.ru/ [R=301,L]

Выполнение двух вышеперечисленных условий одновременно можно реализовать следующим образом:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^tengy.ru
RewriteRule (.*) http://www.tengy.ru/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.html HTTP/
RewriteRule ^index.html$ http://www.tengy.ru/ [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.php HTTP/
RewriteRule ^index.php$ http://www.tengy.ru/ [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.htm HTTP/
RewriteRule ^index.php$ http://www.tengy.ru/ [R=301,L]

Сессии в адресе страниц

Многие системы управления сайтами создают адреса страниц вида
http://www.tengy.ru/development.html?PHPSESSID=cd4b4adb6b1fca2fb87161dea5cf8760.
Эти страницы выдаются пользователю в адресной строке, индексируются поисковыми системами. Таким образом получается, что одна и та же страница сайта доступна по разным адресам, например:
http://www.tengy.ru/development.html
http://www.tengy.ru/development.html?PHPSESSID=93adac36813a853a8d0bdaac2a0df33c
http://www.tengy.ru/development.html?PHPSESSID=04a747a432a35a0da0b795dc1bdf9 f9e

и т.п.

Помимо запрета сессий в файле robots.txt желательно сделать редирект с сессионных адресов на статические.
Реализовать это можно следующим образом:

1. В файле .htaccess пишем следующие строки:

RewriteEngine On
RewriteCond %{QUERY_STRING} PHPSESSID
RewriteRule .* redirect.php [L]

2. В корневой директории сервера создаем файл redirect.php следующего содержания:
<?php
$redirect_addr=substr($_SERVER['REQUEST_URI'],0,strpos($_SERVER['REQUEST_URI'],'PHPSESSID')-1);
header('Location: http://'.$_SERVER['HTTP_HOST'].$redirect_addr);
exit(); ?>

Мы описали пути решения наиболее распространенных технических проблем, затрудняющих корректную индексацию сайта.
Более подробную информацию по синтаксису и использованию ModRewrite можно узнать на сайте:

Использование редиректов

С помощью ModRewrite решаются и более сложные задачи.
Например, при переносе сайта на новую систему управления, мы можем реализовать редирект для каждой страницы следующим образом:
RedirectMatch Permanent ^/portfolio.php$ http://www.tengy.ru/portfolio.html[L,R=301]

При переезде на другой домен (для примера возьмем переезд с домена www.tengystudio.ru на www.tengy.ru:

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} ^http://www.tengystudio.ru$
RewriteRule ^(.*)$ http://www.tengy.ru/$1 [R=301,L]

Вообще перенос сайта на другой домен желательно доверить специалисту.
Например для переноса сайта с бесплатного хостинга на платный (если нет доступа к конфигурационному файлу .htaccess) можно использовать редирект с помощью метатега refresh. Для этого добавляем метатег (между тегами и страницы):

<meta http-equiv="refresh" content="3; url=http://www.tengy.ru/">

В приведенном примере задержка переадресации - 3 секунды.

 

При цитировании материалов сайта ссылка на Tengy Studio обязательна.

 

 
 
 
Создание и продвижение сайтов
Tengy Studio © 2002-
Карта сайта E-mail
Rambler's Top100