301 редирект добавляет к адресу q. Перенаправление при смене расширения файла

Я собрал все возможные способы сделать 310 редирект, используя разные способы. Вы можете выбрать для себя все, что душе угодно.

Собственно, давайте разбираться в вариантах сделать редирект (переадресацию) правильно.

Простой 301 редирект в.htaccess

Если ваш сервер (или хостинг) использует apache, переадресацию можно выполнить, через файл. htaccess. Этот способ, по-моему, самый простой и удобный из всех мною виденных. Важно! Не забудьте включить модули mod_alias (для поддержки правил Redirect, RedirectPermanent и RedirectMatch) и mod_rewrite в php.ini.

1. Простая переадресация со старых страниц на новые: Redirect 301 /old/ http:// domain.com/new/ или Redirect permanent /old/ http:// domain.com/new/

Единственным минусом является потребность вносить все изменения вручную, то есть каждый адрес прописывается непосредственно программистом.

2. 301 редирект в.htaccess для русскоязычных ссылок

Единственная разница, которая заняла у меня кучу времени, это потребность в точности сохранения документа в формате uft-8 без БОМ , что является очень важным моментом. Если вы сохраните в другом формате, вероятнее всего ваше перенаправление работать не будет.

В остальном все также:

3. Редирект с помощью RedirectMatch

Похожий способ редиректа, который описан выше за исключением того, что в этом случае можно указывать перенаправление, если вы перевели сайт с движка на php на aspx.

RedirectMatch /(.*).php$ /$1.aspx

4. Перенаправление домена с www на не-www
Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.(.*) RewriteRule ^(.*)$ http://%1/$1

еще вариант в более простом виде:

Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domain.com$ RewriteRule ^(.*)$ http://domain.com/$1

5. Редирект запросов без www на с-www Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^domain.com$ RewriteRule ^(.*)$ https://domain.com/$1

так же решает аналогичную задачу:

RewriteEngine On RewriteCond %{HTTP_HOST} !^www.(.*) RewriteRule ^(.*)$ https://%1/$1

6. Редирект ссылок со слешем на без для всего сайта RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteRule ^(.*)\/$ /$1 7. 301 редирект как в пункте 6, только наоборот RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteRule ^(.*[^\/])$ /$1/ 8. Убираем слэш в конце главной ссылки если она без www RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1/ RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://%1/$1 RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://%1/$1/ 9. Убираем слэш в конце главное ссылки, если она с www RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^www\.(.*)$ RewriteRule ^(.*)$ http://www.%1/$1/ RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} !\/$ RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1/ RewriteCond %{REQUEST_URI} !\? RewriteCond %{REQUEST_URI} !\& RewriteCond %{REQUEST_URI} !\= RewriteCond %{REQUEST_URI} !\. RewriteCond %{REQUEST_URI} ![^\/]$ RewriteCond %{HTTP_HOST} ^([^www].*)$ RewriteRule ^(.*)$ http://www.%1/$1 10. Убираем с помощью правильного перенаправления /index.php (без GET) RewriteCond %{REQUEST_URI} /index.php RewriteCond %{QUERY_STRING} ^\z RewriteRule ^(.*)$ http://site.ru/? 11. 301 редирект для всех адресов где есть index.php RewriteCond %{REQUEST_URI} /index.php RewriteRule ^(.*)$ http://site.ru/ 12. Делаем переадресацию с динамического url на статический

вариант с GET

RewriteCond %{QUERY_STRING} ^id=229 RewriteRule ^.*$ /supermodel/?

вариант без GET

RewriteCond %{REQUEST_URI} /test/ RewriteCond %{QUERY_STRING} ^id=229 RewriteRule ^.*$ /supermodel/?

13. Делаем переадресацию всех страниц домена на один url другого домена RewriteCond %{REQUEST_URI} (.*) RewriteRule ^(.*)$ http://site.ru/ 14. Редиректы для SSL (перенаправление с http на https и наоборот)

Подробнее об этом я написал , которую, в свете я предлагаю изучить.

RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

Редирект с помощью скриптов

Очень многие осуществляют редирект с помощью скриптов. Небольшая подборка для разнообразия.

HTTP/1.1 301 Moved Permanently Location: https://new.com/new-k/new.htm PHP редирект

15. ASP редиректы

17. ASP.NET редирект
private void Page_Load(object sender, System.EventArgs e) { Response.Status = “301 Moved Permanently”; Response.AddHeader(“Location”,“https://new.com”); } 18. ColdFusion редирект
19. JSP (Java) редирект
20. CGI PERL
$q = new CGI; print $q->redirect(“https://new.com/”); Ruby on Rails def old_action headers[“Status”] = “301 Moved Permanently” redirect_to “https://new.com/”

Также существуют разные рекомендации от поисковых систем, для реализации 301 редиректа. Я рекомендую использовать рекомендации Google, в которых очень подробно изложены рекомендации о том, как правильно настроить 301 редирект .

Для размещения 301 переадресации на серверах Apache, достаточно изменить, как описано выше файл.htaccess. Если вы не понимаете, как это работает и незадачливые символы в описании выше для вас большая загадка — обратитесь к хостинг-провайдеру или напишите вопрос в комментария.

Как сделать 301 редирект (переадресацию) в WordPress с помощью плагина

Очень многие используют одну из самых популярных CMS WordPress. По разным причинам нам может понадобиться сделать редирект внутри сайта. Например, эта необходимость возникла у меня при переносе сайта на новый домен.

Самым оптимальным решением оказался плагин для WordPress, который решил все мои задачи. Минусом этого плагина была только ручное формирование списка ссылок для редиректа.

В целом плагин для WordPress вполне меня устраивает и по сей день.

Рассмотрим некоторые пояснения связанные с 310 редиректом

301 редирект или ошибка сервера-301, является ответом, указанным в HTTP заголовке и говорит о том, что старый адрес имеет новый путь на постоянной основе.

** 303-я ошибка указывает на временный путь переадресации.

Редирект - это перенаправление посетителя с одного сайта на другой автоматическим путем. Словом, пользователь оказывается совсем не на той странице, адрес которой он набирал в строке поиска.

Редирект выполняется с использованием скрипта, который и осуществляет перенаправление. Выполняемый трюк полезен владельцам тех сайтов, которые хотят приобрести более благозвучное название домена.

К примеру, смена адреса интернет-магазина ведет за собой большие потери, потому что часть посетителей будет потеряна. В данном случае скрипт решает эту задачу: пользователи также набирают прежний, знакомый им адрес, но переправляются на новую страницу. Редирект поможет в случае, когда происходит скрещивание нескольких доменных имен. Адрес сайта могут набирать, указав www или просто быстро набрав основное название, но именно при помощи скрипта попадают на одну и ту же страницу.

Функция редиректа полезна не только в качестве сохранения хорошей посещаемости интернет-магазинов. Продвижение сайта стоило владельцам немалых усилий, поэтому логично, что они стремятся сохранить позиции. Для создания более успешного предприятия в рамках интернет-магазина можно склеить несколько сайтов. Для этого применяют редирект. Данный способ реализации функции редиректа, с одной стороны, является очень быстрым и надежным, с другой - поисковые системы относятся к склеенным сайтам с подозрением.

Почему так происходит?

Дело в том, что поисковые сайты являются машинами, которым необходимо четко проиндексировать все ресурсы. Склеенные сайты затрудняют эффективность быстрой индексации, что, в свою очередь, снижает отлаженность их работы.

Наиболее опасны в этом контексте сайты, которые индексируются роботами, при этом направляя пользователя на тот ресурс, с которого происходит редирект. Но поисковые системы не всегда однозначно негативно воспринимают скрепленные сайты. Речь о функции 301-редирект.

Редирект-301 является услугой на уровне сервера. Он составляет исключение среди других аналогичных функций, поскольку практически все поисковые системы воспринимают его дружественно. В частности, крупнейший поисковый ресурс Google, который используют чаще всего, благосклонно перенаправляет услугой редиректа 301 на нужную страницу.

Причина успешного взаимодействия редиректа-301 с поисковыми ресурсами в том, что он коренным образом отличается от аналогичных услуг по оптимизации. Он составлен таким образом, что функционирует понятно для робота, коим является поисковая система. Редирект перенаправляет на нужный URL страницы однократно и окончательно.

Влияние 301-го редиректа на seo продвижение

1. При 301 редиректе происходит склейка адресов. Роботы поисковых систем и пользователи, открывающие сайт в браузере, перенаправляются на новую страницу с новым адресом, автоматически.

2. При склейке адресов, новый url получает полный вес страницы, ссылочную массу и такие значения, как ТИЦ.
Подобный редирект — это наилучшее решение при переносе сайта на новую систему управления контента, если вы не хотите потерять позиции и рейтинг сайта. Мой seo-блог использует несколько видов 301 редиректа для перенаправления.

На этом все. Надеюсь, эта статья была полезна для вас. Если вы знаете свои собственные методы настройки редиректа, буду рад почитать о них в комментариях.

Здравствуйте, дорогие мои друзья! Сегодня я решил написать статью о «страшном» понятии как 301 редирект . Да, не пугайтесь так, на самом деле всё очень и очень просто:). В данной статье я Вам расскажу, что это такое, зачем он нужен, как его сделать и много другой не менее полезной информации по этой теме!

Новость №1

Очень увлёкся инвестированием в различные популярные брокерские компании. Я уже написал пару статей на эту тему, куда я вложил немного денег:

  • Статья про ;
  • Статья про инвестирование в .
  • В этих статьях я рассказал куда и сколько я инвестировал. Скоро узнаете ещё об одной не менее прибыльной брокерской компании, поэтому не пропустите выхода этой статьи! Доход в месяц от инвестирования в этой компании, а вернее в данной программе доверительного управления от 7-40%.

    А теперь, давайте разберёмся, что такое redirect.

    Редирект (redirect) — это переброс (перенаправление или переадресация) c одного доменного имени на другого (с одного сайта на другой), с одной страницы сайта на другую. Т.е. пользователь набирает в строке своего браузера одно название страницы или сайта, а попадает совсем на другое название страницы или сайта.

    Зачем нужен 301 редирект вебмастерам?

    Используют редирект 301 в следующих случаях:

    1. Для склейки .

    Помните, в прошлой статье я рассказывал о нежелательности иметь сайт с доменом www, так как это приводит перераспределению ссылочной массы на два домена и, как следствие, негативно влияет на ранжирование сайта в поисковиках;

    2. При переходе сайта на новый домен. Бывает так, что сайт попадает под различные фильтры поисковых систем, поисковый трафик снижается (или вообще исчезает), поэтому возникает необходимость на новый домен. А как быть с постоянными читателями блога? Как быть с теми, кто сохранил ваш блог в закладках или подписался на ? Вот для этого и пригодится 301 редирект ;

    3. Для повышения тИЦ и PR сайта, сохранения поискового трафика. Например, вы хотите повысить и ПР определённому сайту (основному). Для этого нужно купить с уже имеющимися хорошими пузомерками и сделать редирект на основной сайт, тогда тИЦ, ПР и поисковой трафик будет передаваться ему.

    4. Если вам нужно поменять адрес страницы. Например, ваша страница занимает высокие позиции в поисковиках или прошла индексацию и вам не хочется, чтобы она выпадала из индекса, тогда редирект 301 как раз то, что нужно.

    5. При переходе бесплатного хостинга на платный .

    Также есть ещё ряд применений редиректу 301, но пока остановимся на вышесказанном.

    Классификация redirect

    Как я уже сказал, для общего развития, начинающему вебмастеру нужно знать, что кроме 301 редиректа существуют и другие:

    Но наиболее часто используют 301 редирект.

    Как сделать 301 redirect через файл.htaccess?

    Возникает вопрос: а что же такое файл .htaccess ? Это файл, в котором будут хранится различные команды 301 редиректа (о переадресации страницы, домена и т.д.).

    Дело в том, что обычным способом на компьютере его не переименовать, выдаётся ошибка (у меня так), а при помощи вышеперечисленных программ точно можно.

    А теперь открываем файл (с помощью текстового редактора) и вписываем необходимый код редиректа.

    Если вы хотите переправить посетителей одного сайта на другой

    Redirect 301 / http://www.домен.com

    Redirect 301 — указывает, на то, что сайт перемещён;

    «/» — указывает, что всё с верхнего уровня блога будет перемещено (переадресовано) на новый домен.

    Например, если вы хотите с одной страницы сайта сделать перенаправление на другую страницу сайта, то в файл.htaccess нужно вставить следующий код:

    Redirect 301 /старая-страница.html http://новый-домен.ru/новая-страница.html
    или
    Redirect permanent /старая-страница.html http://новый-домен.ru/новая-страница.html

    RedirectPermanent /старая-страница.html http://новый-домен.ru/новая-страница.html

    Редирект с помощью директивы RedirectMatch

    Этот редирект практически тот же, что и предыдущий, но здесь вы можете задать регулярное выражение для старых , например, при смене CMS с PHP на ASP, код редиректа будет выглядеть так:

    RedirectMatch /(.*)\.php$ /$1.aspx

    Редирект 301 с домена с www на домен без www

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www.site.ru$
    RewriteRule ^(.*)$ http://site.ru/$1

    Редирект 301 с домена без www на домен с www

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^site\ .ru$
    RewriteRule (.*) http://www.site.ru/$1

    RewriteEngine on|off - это специальная директива, которая служит для отключения или включения доступа к коду файла.htaccess, доступ осуществляется через модуль хостинга mod_rewrite;

    RewriteCond - это специальная директива, которая определяет условия для правил преобразований. Является директивой модуля хостинга mod_rewrite;

    RewriteRule - это директива, которая отвечает за различные преобразования. В данном случае редирект 301.

    Сначала информация о странице поступает в директиву RewriteCond, после чего эта информация преобразовывается в директиву RewriteRule. Вот так работает вышеприведённый код, если вкратце.

    Да, информация сложная для понимания (поначалу), но если Вы её освоите, то в дальнейшем будет намного проще.

    А на этом статью буду заканчивать, всем пока!

    P.S.

    С уважением,Александр Сергиенко

    301-ая ошибка (301 Permament Redirect), возвращаемая при обращении к определенному адресу страницы, означает, что сайт был на постоянной основе перенесен на новый адрес, также указанный в HTTP заголовке. Как пользователи, зашедшие через браузер, так и поисковые боты будут перенаправляться по новому адресу, при этом, для поисковиков все свойства старого адреса (страницы) будут переданы новому URL . При 301 редиректе произойдет склейка старого и нового адресов: параметры вроде PageRank и тИЦ, а также вес страницы и ссылочный вес старого адреса будет передан новому URL .

    Редирект с номером ошибки 301 (moved permanently) это наилучший способ сохранить рейтинг сайта в поисковых системах при переносе его на новый домен или смене системы управления контентом. Переадресацию можно выполнить несколькими способами, в зависимости от установленного программного обеспечения.

    301 редирект в.htaccess

    При использовании апача (apache) на сервере, переадресацию можно просто выполнить с помощью файла.htaccess, однако, при этом, не забыть включить модули mod_alias (для поддержки директив Redirect, RedirectPermanent и RedirectMatch) и/или mod_rewrite (для использования реврайта) в php.ini.

    Редирект с помощью директивы Redirect или RedirectPermanent модуля mod_alias

    Недостатком данного способа является то, что все адреса, которые необходимо перенаправить, нужно перечислять один за одним, каждый отдельно. Также можно использовать RedirectPermanent для аналогичных целей.

    Редирект с помощью директивы RedirectMatch

    Этот редирект подобен предыдущему, за исключением того, что можно задавать регулярное выражение для старых URL адресов. Допустим, при смене движка с PHP на ASP , можно старые адреса перенаправить следующим образом:

    RedirectMatch /(.*).php$ /$1.aspx

    Редирект с помощью директивы RewriteRule модуля mod_rewrite

    Для использования директивы RewriteRule необходимо удостовериться, что в httpd.conf подключен модуль mod_rewrite, а также влючена опция FollowSymLinks. Использование реврайт модуля дает много возможностей для перенаправления страниц на новые адреса.

    Перенаправление домена с www на не-www

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.(.*)
    RewriteRule ^(.*)$ http://%1/$1

    или альтернативный, более понятный синтаксис

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.domain.com$
    RewriteRule ^(.*)$ http://domain.com/$1

    Редирект запросов с не-www на домен с www префиксом

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^domain.com$
    RewriteRule ^(.*)$ http://www.domain.com/$1

    или же альтернативный вариант

    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www.(.*)
    RewriteRule ^(.*)$ http://www.%1/$1

    Редирект с помощью скрипта (отправки заголовков)

    Редирект запросов можно осуществлять также с помощью скриптов, отправляя клиенту необходимые заголовки.

    PHP редирект

    ASP редирект


    ASP .NET редирект


    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Status = “301 Moved Permanently”;
    Response.AddHeader(“Location”,“http://www.new-url.com”);
    }

    ColdFusion редирект


    JSP (Java) редирект

    CGI PERL

    $q = new CGI ;
    print $q->redirect(“http://www.new-url.com/”);

    Ruby on Rails

    def old_action
    headers[“Status”] = “301 Moved Permanently”
    redirect_to “http://www.new-url.com/”
    end

    Про 301 редирект уже, наверное, сказано и пересказано множество раз в блогах, форумах и т.п. Но, как оказывается, не до всех эта информация вовремя доходит (тут я как бы намекаю на себя:). За более чем 3 года в сети я слышал про 301 редирект множество раз, иногда даже собирался его «попробовать», но давайте посмотрим фактам в лицо — так этого и не сделал. А зря! Все началось достаточно прозаически — у меня есть один сайт, который постоянно «колбасит» в плане индексации поисковиками. Вроде и ссылки там есть, и контент нормальный, а он все ни в какую не хочет стабильно работать. У меня уже почти закончились варианты подобного поведения, но тут я вспомнил про основы основ SEO и вообще продвижения — 301 редирект.

    Беглый опрос в твиттере показал, что реально я чуть ли не один «забиваю» на этот важный момент. Большинство единогласно ответило, что в обязательном порядке устанавливает 301 редирект сразу при создании сайта. Более того, тут мне недавно попросили по разработке сайта добавить этот же самый 301 редирект для них, поскольку просьба пришла от продвигающей и конторы. Учитывая все эти моменты и «намеки судьбы» я понял 301 редиректу быть!

    Зачем вообще нужен 301 редирект ? — спросите вы — есть несколько ситуаций в которых его можно применить:

  • Для склейки домена с www и без www. При этом показатели и ссылочный вес будет совмещаться, а то иногда бывает, что для домена с и без www они могут отличаться.
  • При смене домена со старого на новый 301 редирект позволит опять же сохранить показатели и ссылочное (насчет тИЦ не знаю, но PR точно).
  • При переносе страницы на сайте чтобы поисковики и посетители попадали на новую страницу вместо старой неработающей.
  • Если есть пиаристые домены со ссылками, которые по каким-то причинам вами не используются, возможно, просто некогда, то теоретически можно использовать 301 редирект на другие свои сайты. Хотя это метод такой — дополнительная возможность что ли, основные все же первые три.
  • Вообще 301 редирект нужен как для пользователей, так и для поисковых роботов — позволяет сориентировать тех и других, что есть новый сайт, домен, страница и без лишних вопросов переадресовывает их туда. Кроме того 301 редирект произведет склейку показателей сайтов и позволит не потерять позиции в поисковых системах.

    Как сделать 301 редирект

    Решений для этой задачи есть множество, все зависит от того какими техническими средствами обладает ваш хостинг. Также в интернете есть много статей по 301 редиректу, которые можно почитать, я приведу лишь несколько, на мой взгляд, самых типичных ситуаций.

    Простой редирект

    Производится в файле.htaccess или httpd.conf для Apache. Самый простой вариант простого 301 редиректа для переадресации на новый домен выглядит следующим образом:

    Redirect 301 /site1/page1.htm http://www.site2.com/page2.htm

    Вот еще парочка примеров простого 301 редиректа:

    Redirect permanent /test http://www.test.com/ Redirect permanent / http://enter.test.com/

    Здесь при попадании пользователя или робота в директорию test он перенаправится на www.test.com, все остальные попадут на enter.test.com. Для этого 301 редиректа на хостинге должны быть включены модули mod_alias (для поддержки Redirect, RedirectPermanent и RedirectMatch).

    301 редирект с помощью mod_rewrite в.htaccess

    С модулем mod_rewrite вы сталкивались достаточно часто даже не подозревая этого. В частности речь идет про постоянные ссылки (permalinks) как полезный инструмент в seo оптимизации wordpress. Если в админке настроите эти самые ссылки и после этого зайдете в файл.htaccess, то обнаружите там целый ряд правил для переадресации через директиву RewriteRule. Кроме того нужно проверить чтобы была подключена опция FollowSymLinks.

    Перенаправление домена с www на без-www

    Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^www.domain\.com$ RewriteRule ^(.*)$ http://domain.com/$1

    Редирект запросов без-www на домен с www префиксом

    Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.(.*) RewriteRule ^(.*)$ http://www.%1/$1

    Вообще использование www в названии сайта само по себе устарело, но иногда до сих пор встречается. Если вы создаете новый сайт, то конечно сразу указываете везде без www, но если получили «готовый продукт», то нужно смотреть как домен отображается в выдаче Google и Яндекс — такой редитект и оставляете дабы ничего кардинально не менять.

    301 редирект старого домена на новый:

    RewriteEngine on RewriteBase / RewriteRule ^rewrite\.htm$ rewrite.html

    Для замены всех.htm файлов.html файлами:

    HTTP/1.1 301 Moved Permanently Location: http://www.newdomain.ru/newdir/newpage.htm

    Для этого, например, в PHP используем:

    Данный код лучше всего вставлять в начало PHP скрипта чтобы до него ничего не выводилось (echo или print). За пояснение спасибо автору этой статьи где также найдете информацию про установку редиректа на ASP, ColdFusion и т.п., просто с php самый популярный вариант.

    Примечания по 301 редиректу

    Напоследок пару моментов по 301 редиректу, которые нужно помнить и с которым я так или иначе столкнулся:

    • Во-первых, последовательность правил редиректа учитывается. Так что если какое-то правило не выполняется, проверьте нет ли других редиректов и не мешают ли они.
    • Во-вторых, помнить синтаксис и все особенности 301 редиректа достаточно сложно, поэтому иногда здорово помогает логика и перебор некоторых вариантов:) Хотя, конечно, лучше читать официальную документацию.
    • В-третьих, после внедрения 301 редиректа обязательно проверьте правила на работоспособность, зайдите не только на главную, но и пройдитесь по разделам, страницам сайта дабы потом не было проблем с этим.

    Если у вас есть что добавить по 301 редиректу — пишите:)

    P.S. Постовой. В наше время каждый день появляется множество интересных интернет проектов. Хотите знать все про стартапы тогда читайте новый увлекательный блог StartupWay.
    После аудита и оптимизации веб-проекта следует комплексная раскрутка сайтов в поисковых системах Google и Яндекс.

    Код ответа 301 (Moved Permanently) означает, что запрошенный документ теперь доступен по новому адресу на постоянной основе. Редирект 301 может понадобиться в нескольких случаях: переезд на новый домен, изменение адреса страницы или . Цели этих мероприятий вполне прозрачны:

    • Перенос старых показателей на новую страницу или домен.
    • Устранение битых ссылок, как внешних, так и внутренних.
    • Устранение дублей страниц.

    Существует несколько способов сделать 301 редирект, но я предпочитаю вариант с использованием файла.htaccess, который находится в корневой папке FTP вашего сайта (если его там нет, то просто создайте его, он не имеет расширения).

    Настройка 301 редиректа со страницы на страницу

    Довольно часто возникает ситуация, когда страница сайта была удалена или вынуждена сменить свой URL. При обращении к её старому адресу, пользователь, само собой, увидит страницу 404 ошибки (не найдено).

    Если станица маловажная, то не стоит и возиться, но если к ней часто обращались посетители сайта (и, возможно, у кого-то она сидит в закладках), если на неё ведут неподконтрольные вам внешние ссылки или, наоборот, подконтрольные внутренние, но в таких объёмах, что очень хочется их править, то настройка 301 редирект со старой страницы на новую станет для вас идеальным решением.

    Также его можно использовать для борьбы с дублями страниц. В общем нужно писать книгу на тему «99 способов использование Redirect 301». Вот его синтаксис:

    Redirect 301 /old-page.html http://new-domain.ru/new-page.html

    Ну или так, результат будет один и тот же:

    Redirect permanent /old-page.html http://new-domain.ru/new-page.html

    Поясняю: /old-page.html - относительный адрес старой страницы. Он может быть вложенным: /old-category/old-page.html, ну или таким: /old-category/old-page/ - тут никаких ограничений нет. Тоже самое относится к http://new-domain.ru/new-page.html (новой странице), с той лишь разницей, что путь тут абсолютный (не обязательно, чтобы это был новый домен - может быть просто новый внутренний адрес страницы).

    Настройка 301 редиректа при переносе сайта на новый домен

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

    Options +FollowSymLinks
    RewriteEngine on

    RewriteEngine off

    RewriteCond %{HTTP_HOST} ^old-domain\.ru
    RewriteRule ^(.*)$ http://new-domain.ru/$1
    RewriteCond %{HTTP_HOST} ^www.oldsite\.ru
    RewriteRule ^(.*)$ http://old-domain.ru/$1

    В данном примере мы установили редирект всех страниц старого домена на страницы нового (при условии, что их относительные адреса совпадают). При этом мы оставили без редиректа на старом домене файл robots.txt, чтобы процесс переноса был более полноценным. В него мы прописываем:

    User-agent: *
    Disallow:
    Host: newsite.ru
    Sitemap: http://newsite.ru/sitemap.xml

    Ну и ждём пару месяцев, пока переезд домена не будет зачтен, а все характеристики - переданы.

    Склейка зеркал сайта: 301 редирект c www на без www и наоборот

    Существует несколько вариантов обращения к сайту - с www и без www (например, сайт и www.сайт). Пользователю все равно, как именно вводить URL, так как он в любом случае попадет на одну и ту же страницу. Иначе дело обстоит с поисковыми системами. Они расценивают www.site.ru и site.ru, как два совершенно разных домена (что тянется из глубин истории всемирной сети, когда это действительно было так).

    Эти дубли мешают индексации сайта и продвижению в целом, так как, во-первых, это банальные дубли страниц (уж извиняюсь за повторение) и, во-вторых, входящие ссылки будут также укладываться в разные корзины. Тоже самое касается и дублей главной страницы: site.ru, site.ru/index.html, site.ru/index.php и т.д. По этой причине еще на этапе создания сайта желательно позаботиться об этом вопросе и одну из версий сайта (например, c www) переадресовать на другую (например, без www). Если момент был упущен, то тут нет ничего страшного.

    Рассмотрим процесс склейки зеркал с помощью 301 редиректа поэтапно.

    1. Определяем основной домен, выбранный для индексации поисковыми системами.

    Основное зеркало можно легко определить по результатам поисковой выдачи Яндекс и . Вводим название домена и смотрим, какой адрес отобразится: www.site.ru или site.ru. Если же сайт еще не проиндексирован, то выбираем его по своему усмотрению. Если в Google и Yandex основные домены разные, то лучше оставьте Яндексовский.

    2. Прописываем 301 редирект в.htaccess.

    Находим в корне FTP сайта файл.htaccess, скачиваем и открываем в блокноте, а затем вносим в него необходимые изменения. Первый вариант - 301 редирект домена без www на с www:

    Options +FollowSymLinks
    RewriteEngine On

    RewriteEngine off

    RewriteCond %{HTTP_HOST} ^site.ru$
    RewriteRule (.*) http://www.site.ru/$1

    Обратная ситуация - с www на без www:

    Options +FollowSymLinks
    RewriteEngine On

    RewriteEngine off

    RewriteCond %{HTTP_HOST} ^www.site.ru$
    RewriteRule (.*) http://site.ru/$1

    После завершения редактирования, сохраняем файл и загружаем его в корневую папку FTP с перезаписью.

    Опционально можно сразу же позаботиться о дублях главной страницы вида index.php и index.html, добавим ниже следующий код:


    RewriteRule ^index\.html$ http://www.site.ru/

    RewriteRule ^index\.php$ http://www.site.ru/

    Ну и, опять же, если у вас site.ru:

    RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.html\ HTTP/
    RewriteRule ^index\.html$ http://site.ru/
    RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ http://site.ru/

    3. Настройка robots.txt

    Увидели знакомую директиву, оставляющей robots.txt нетронутым? Все верно, вносим изменение в robots.txt:

    Host: основное-зеркало.ru

    4. Проверяем работу сайта.

    Вводим тот адрес, который с которого мы проставляли редирект, например www.site.ru или site.ru/index.html и если при заходе на него происходит переход на site.ru, то всё настроено правильно.

    5. Настройка Yandex и Google вебмастер.

    Дополнительно применяем соответствующие настройки в личных . В случае с Yandex:

    Ну и для Google:

    На этом вроде всё. Удачи вам и если появятся вопросы, то пишите в комментариях.