301 редирект – корректная переадресация через htaccess и php header « SB-MONEY.RU






SB-MONEY.RU » Статьи » Программирование для Web » 301 редирект – корректная переадресация через htaccess и php header
301 редирект – корректная переадресация через htaccess и php header Добавлена: 19.01.2007
Автор: Сергей Брундасов http://sb-money.ru/ Страницы: [1]

Редирект 301 (301 Permanent Redirect) используется в нескольких случаях: при смене домена, при переносе страницы сайта, для склейки имени сайта с www и без него. Это важно для передачи Page Rank (PR) и сохранения поискового трафика.

Сам я столкнулся с его необходимостью, когда после переезда своего портала из зоны com, в ru обнаружил, что Google, Яндекс и другие поисковые системы, естественно не "забывают" старого сайта (отчасти еще и из-за того, что у меня была некорректно установлена своя страница, для обработки 404 ошибки, которая возвращала код ответа 200 OK). Более того, Google за полгода оставил для нового сайта PR=0, хотя для старого он сохранился PR=4.

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

301 редирект это наилучший метод сохранения ваших позиций в поисковых системах, когда вы переносите страницу или сайт. Код "301" интерпретируется как постоянное перемещение ("moved permanently").

  1. Простой редирект (в файле .htaccess или httpd.conf для Apache):

    Redirect 301 / http://www.you.com/new.htm

    где:

    Redirect 301 — это инструкция, говорящая что страница перемещена

    / — означает, что все с верхнего уровня сайта, включая все подкаталоги, будет переадресовано

    http://www.you.com/new.htm — новая страница или сайт (не забывайте поставить последний "/", если переадресация идет на сайт).

    Чтобы переадресовать только страницу, сохранив PR старой страницы:

    Redirect 301 /old/old.htm http://www.you.com/new.htm

    где:

    /old/old.htm — путь и имя старой страницы

    Аналогичный синтаксис для переадресации сайта:

    RedirectPermanent / http://www.you.com/

    Пример переадресации каталога:

    RedirectPermanent /old-directory http://www.domain.com/new-directory/

    Например, зашедших в test переадресуем на www.test.com, остальных на enter.test.com (порядок следования записей важен):

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

    Примечание: для моих целей (изменение домена) хватило первого варианта простого 301 редиректа.

  2. Использование mod_rewrite (прописывается в файле .htaccess):

    Ставшая классической задача слияния имена сайта с www и без него, решается так:

    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^yoursite.com
    RewriteRule ^(.*)$ http://www.yoursite.com/$1 [R=permanent,L] . 
    

    или альтернативный синтаксис:

    Options +FollowSymLinks
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
    RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
    

    Обозначение [R=301,L] означает: перенаправить клиента и отправить ему код статуса 301 (R=301) и сделать это правило последним (L).

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

    Options +FollowSymLinks
    RewriteEngine on
    RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
    

    Например, если необходимо чтобы вместо rewrite.htm загружался файл rewrite.html, добавьте в .htaccess:

    RewriteEngine   on
    RewriteBase     /
    RewriteRule     ^rewrite.htm$  rewrite.html [R=permanent]
    

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

    RewriteEngine  on
    RewriteBase     /
    RewriteRule     ^(.*).htm$  $1.html [R=permanent]
    
  3. Редирект на PHP:

    <?php
    header("HTTP/1.1 301 Moved Permanently");
    header("Location: http://www.newdomain.ru/newdir/newpage.htm");
    exit();
    ?>
    

    Лучше указать HTTP/1.1, так как более старые не поддерживают виртуальный хостинг. Не забудьте, что до вызова header, ничего не должно выводиться (например, echo или print). Поэтому этот код лучше ставить в начало php-скрипта.

    Более полный вариант php редиректа с сохранением передаваемой страницы и параметров вызова:

    <?
    $ref=$_SERVER['QUERY_STRING'];
    if ($ref!='') $ref='?'.$ref;
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: http://newdomain.com/'.$ref);
    exit();
    ?>
    
  4. Редирект на ASP

    <%@ Language=VBScript %>
    <% 
    Response.Status="301 Moved Permanently"
    Response.AddHeader "Location", "http://www.new-url.com"
    response.end
    %>
    
  5. Редирект на ASP.NET

    <script runat="server">
    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Status = "301 Moved Permanently";
    Response.AddHeader("Location","http://www.new-url.com");
    }
    </script>
    
  6. Редирект на ColdFusion

    <.cfheader statuscode="301" statustext="Moved permanently">
    <.cfheader name="Location" value="http://www.new-url.com">
    
  7. Редирект с помощью meta refresh

    <meta http-equiv='refresh' content='0; url=http://newdomain.com'>
    

    где 0 — задержка переадресации в секундах, newdomain.com -страница, куда переадресуем. Некоторые старые браузеры не поддерживают meta refresh со значением 0, для совместимости можно установить ненулевой значение, хотя, на мой взгляд это уже не актуально. Такой редирект не сможет склеить ваши сайты (с www и без) и передать PR, так как игнорируется поисковыми системами. Он возвращает код 200 OK, что соответствует обычной странице. Эта техника популярна у спамеров, поэтому ее стоит применять только для страниц, которые не будут индексироваться.

  8. Редирект с помощью JavaScript

    Варианты переадресации на JavaScript чаще реализуются с использованием функции setTimeout(‘функция’, задержка).

    Например, автоматически сделать Click на кнопке "Submit" формы "searchform" через 0.1 сек после загрузки кода:

    setTimeout(‘document.forms["searchform"].Submit.click()’, 100);

    На кнопку "Submit" можно повесить любое действие, например, открыть новый url в этом окне. Кстати такое редиректы чаще встречаются при организации Дорвеев (DorWay) — браузер Пользователя будет переадресован на другую страницу, а поисковый робот, который "не понимает" JavaScript, будет индексировать эту страницу, недоступную пользователю. На ней дорвейщики размещают текст, напичканный "нужными" ключевыми словами.

    Чтобы просто переадресовать на другую страницу можно вставить после один из вариантов кода на JavaScript:

    • location="http://www.newdomain.com";
    • document.location.href="http://www.newdomain.com";
    • window.location.reload("http://www.newdomain.com");
    • document.location.replace("http://www.newdomain.com");

    В последнем случае уже нельзя будет вернуться на страницу выполнившую переадресацию, так как ее адрес стирается из history, что нередко и нужною.
    Если нужна задержка по времени, можно оформить location="http://www.newdomain.com"; в виде функции и вставить ее в setTimeout(‘функция()’, задержка_в_мсек);
    Редирект на JavaScrupt не является 301 редиректом и не передаст PR страницы, не сможет обеспечить ее склейку.

Отметим дополнительно некоторые особенности редиректов:

  • Методы редиректа с .htaccess работают только на Linux серверах, имеющих Apache с включенным модулем Mod-Rewrite.
  • Использование .htaccess создает дополнительную нагрузку на сервер Apache, более эффективно прописывать те же команды в его конфигурационном файле hpptd.conf, но, как правило, к нему нет доступа у вебмастера.
  • 301 редирект, позволяет сберечь трафик и передать PR страницы для поисковых систем (для Google точно).
  • процесс склейки и передачи PR занимает длительное времени — до нескольких месяцев и также зависит от поисковой системы, поэтому не удаляйте старую страницу или сайт, пока не произойдет окончательный перенос.
  • некоторые поисковые системы требуют для склейки сайтов дополнительных настроек, например, для Яндекса нужно дополнительно прописывать robots.txt

Заключение. Безопасный способ редиректа старых страниц на новые или старого сайта на новый адрес, с сохранением позиций в поисковых системах, заключается в использование 301 редиректа, который также позволит вам передать старый Page Rank страницы на новый сайт.

Более подробно про mod_rewrite можно прочитать на:

http://www.engelschall.com/pw/apache/rewriteguide/

http://www.apache.org./docs/mod/mod_rewrite.html

Проверить корректность редиректа и других возвращаемых заголовков, можно, например, здесь:

http://www.rexswain.com/httpview.html


Статистика
Просмотров: 313143 | Средняя оценка: 8.41/116 | Обсуждение


Комментарии читателей
Alexey:
[26.01.07 15:33]

Огромное спасибо за статью!
Реальный способ сохранить PR для Google!!!
Очень рад, долго искал способ, даже не подумал, редирект джава-скриптом не помогал, PR полгода был нулевым, в то время как на старой директории был 3-4
brundasov:
[26.01.07 22:35]

Рад помочь, сам пострадал в свое время. У меня PR уже за 1.5 недели перенесся, но обычно это занимает больше времени.
onesa:
[25.04.07 17:17]

вопрос такой: а www.mysite.ru (pr3) www.mysite.ru/index.htm (pr2) следует ли сливать через редирект 301?
brundasov:
[25.04.07 22:34]

onesa — думаю, что нет. Следует привести внутренние ссылки к виду www.mysite.ru (т.к. внешние ссылки идут именно на этот адрес). Более компетентно вам смогут помочь в форуме mastertalk.ru, хотя мнений выскажут много разных 🙂
Андрей:
[08.07.08 12:37]

Спасибо большое! Идеальное описание
Александр:
[02.10.08 17:23]

Были стр-цы слепленные во Фронтпейдже с расш-ем htm перевёл сайт на движок и стал постепенно переносить туда стр-цы, удаляя старые. Урлы поменялись. После апа Гугля получил PR4 ТИЦ 350
Чёрт дёрнул в настройках указать домен с www. После этого PR рухнул до 3, ТИЦ до 110
Сейчас, по запросу в Гугле site:webposidelki.ru выдаётся 1320 стр., а по запросу с www. — 905 страниц. Получилось, что я разделил PR пополам и Гугль занёс эти 905 стр. в саплементал (дополнительный индекс) и считает теперь эти стр-цы неоригинальными.
Как вернуть все эти стр-цы и их вес в домен который теперь у моего сайта (webposidelki.ru — постарался побыстрее вернуть всё назад) Движок построен на PHP и использует модреврайт и файлы htaccess, Урлы имеют вид http://webposidelki.ru/post_1222402925.html Обр. внимание на расширение.
Как правильно перенести все оставшиеся старые страницы? Взять все разом переоформить в новом шаблоне блога удалив старые, или переносить постепенно? Вобщем нужен ТОЛКОВЫЙ хелп по проблеме.Очень прошу — ПОМОГИТЕ!!!
brundasov:
[03.10.08 21:55]

Для домена www сделать 301 редирект на домен без www — это достаточно для гугли.

Прописать robots.txt указав корректный хост — это нужно для яндекса.

Яндекс тИЦ вроде не разделяет по доменам с www и без (у меня без индекса тИЦ был 270-300 и не падал), а вот индекс разваливает.

Если яндекс будет тормозить с переиндексацией и правильной склейкой доменов, то стоит удалить сайт из его индекса (тИЦ не потеряется при этом) и добавить после удаления правильный сайт.
dark_13:
[02.04.09 09:14]

Хочу спросить!
а можно зделать редирект что бы в адресной строке показывался адрес с которого идет перенаправление
например
сайт лежит http://dark.test.ru перенаправление идет с сайта http://test.ru и что б в адресной строке отображалось http://test.ru
вот
незнаю поняли или нет но надеюсь:)
error:
[07.04.09 12:15]

// редирект на пхп с передачей в параметре dn запрошенного домена. отличный вариант, когда у домена несколько псевдонимов.

$uri = $_SERVER[REQUEST_URI];
$host = $_SERVER[HTTP_HOST];

if ($host != ‘mail.ru’)
{
header("HTTP/1.1 301 Moved Permanently");

if (strpos($uri, ‘?’) === FALSE)
{
header(‘Location: http://mail.ru’.$uri.’?dn=’.$host);
}
else
{
header(‘Location: http://mail.ru’.$uri.’&dn=’.$host);
}
exit;
}
Михаил:
[08.04.09 10:56]

Спасибо — Большое!
Domus:
[10.04.09 22:06]

Здравствуйте!
У меня такая проблема:
Мой личный блог был раньше по адресу www.xxxxx.ru/blog
Потом он переехал на адрес www.yyyyy.ru на него осталось много ссылок.
Сейчас по старому адресу www.xxxxx.ru/blog другой блог.
Вопрос: реально ли настроить редирект по старым ссылкам на новый домен www.yyyyy.ru чтобы новый блог от этого не страдал?
Буду очень признателен за ответ на мыло admin(собака)blog-mosaic.ru .
brundasov:
[11.04.09 13:52]

Domus — реально, если вы владеете старым доменом www.xxxxx.ru, тогда проще всего сделать редирект в вебсервере (nginx или apache). Если же это был бесплатный блог на каком-либо сервисе или бесплатном хостинге, то нет.
Kirill:
[29.05.09 22:15]

ну как тут не оставиш комментарий,автору респект, сделал все посмотрим вернет ли гугл ПР-3 моему сайту


Чуть не забыл. У меня есть сайт, на бесплатном хосте(пример) xxx.ucoz.ru добавлял страницу в каталоги,а потом ее случайно удалил.Дело в том ,что это страница /index-2.html Мне её просто напросто не восстановить,может подскажете ,что делать,а то жалко сайт,хоть и на халяву,и еще гугл сразу его полюбил,но после всей этой ерунды пр с 4-на 0 упал я аж в шоке был
Андрей:
[30.05.09 21:35]

Отдельное спасибо автору и спасибо всем кто поддержал эту тему!!!!
prototip:
[15.07.09 15:31]

Здравствуйте!
У меня такой вопрос: можно ли сделать выборочный редирект? т.е. — перенаправлять не весь трафик, а только с одного отдельного сайта/домена? Допустим — перенаправление только по ссылкам с домена www.alpha.com через страницу сайта www.beta.ru/redir.htm на страницу другого сайта www.gamma.net? И при этом что бы последний сайт считал переходы как с www.beta.ru/index.php?

Заранее благодарен.
brundasov:
[19.07.09 11:55]

prototip: с конкретного домена можно — нужно проверять по полю HTTP_REFERER и соотв. делать редирект когда он равен www.alpha.com. Но делать надо через www.beta.ru/index.php, т.к. значение поля реферера подставляет браузер клиента — соотвественно не для всех типов браузеров может получаться, соотвественно надо добавить при проверке "редиректного домена" на то подходит ли ваш тип браузера (в зависимости от выбранного вами типа редиректа).
SpeedHoper:
[19.07.09 15:45]

Привет, а кто знает, как делать не 301 редирект, то есть редирект без передачи весов и всего прочего с сайта делающего редирект, на тот, куда редиректим, и как к этому относятся поисковики?
То есть, как сделать просто редирект без передачи веса, и что бы параноидальные поисковики не сочли это за что-то плохое
Спасибо!
brundasov:
[20.07.09 13:12]

SpeedHoper: используйте 302 редирект, он как раз означает временную замену.
mline:
[31.08.09 08:16]

Чем вывести имя домена 3 уровня после редиректа
name.site1.ru редирект на site2.ru/name

Андрей
Владимир:
[11.09.09 11:51]

Подскажите пожалуйста как правильно написать редирект чтоб с ссылки
cgi-bin/index.cgi?num_edit=1014
юзер переправлялся на
index.php?option=com_content&view=article&id=19&Itemid=8
Я написал так
Redirect cgi-bin/index.cgi?num_edit=1014 http://site.ru/index.php?option=com_content&view=article&id=19&Itemid=8
но не работает 🙁
если написать так
Redirect /cgi-bin/index.cgi http://site.ru/index.php?option=com_content&view=article&id=19&Itemid=8
то работает, но мне нужно именно по cgi-bin/index.cgi?num_edit=1014 (вопросик, и всё после него на обрабатывается)
Sandik:
[11.09.09 12:36]

Владимир, у вас просто не правильно построен обработчик, это же проще простого!!! Через условную конструкцию проверьте есть ли у вас переменная num_edit или если нужно проверьте совпадение с значением. Если условие выполнено, то через header(Location) перенаправляете на нужную страницу.
Вверху уже есть решение просто переделаете его "под себя".
erosh:
[06.10.09 16:32]

Скопировал редирект для ASP.net, но браузер выдает:
Firefox определил, что сервер перенаправляет запрос на этот адрес таким образом, что он никогда не завершится.
* Эта проблема может возникать при отключении или запрещении принятия кук.

Что не так?
brundasov:
[07.10.09 18:18]

erosh: редиректить надо на другой урл — у вас получился циклический редирект.
USTAS:
[16.10.09 17:43]

Товарищи, помогите пожалуйста с таким вопросом
Есть стрый сайт №1. Создан новый сайт №2
Я делаю автоматический редирект, т.е. заходя на сайт №1 идет автоматический переход на сайт №2. Старый сайт №1 при этом остается жить. Просто попасть на него будет не возможно.
Вопрос!
Как ведут себя поисковики? Будут ли они видеть старый сайт №1, или они по принципу человека — будут тоже автоматом перебрасываться на сайт №2?
Т.е. хотелось бы узнать, будут ли поисковые машины сканировать и цитировать старый сайт №1. Что будет с PR?
Заранее большущее спасибо за помощь!!!
seacon:
[02.11.09 15:11]

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^yoursite.com
RewriteRule ^(.*)$ http://www.yoursite.com/$1 [R=permanent,L] .

Подскажите, точка в конце нужна? Или опечатка?
denisblek:
[08.11.09 02:49]

здраствуйте помогите пожалуйсто нужно переадресоват файл таким образом
с файла file.php?key=(тут после равно уникальный ключь для каждого пользователя свой) на такойже файл но на втором сервере, и с соблюдением параметров которые после =
примерно так s2.mysite.com/file.php?key=(должнен быть тотже ключь с каким обратиллись до переадресации)
Юрий:
[09.11.09 17:23]

Нодскажите, почему не получается сделать вот такой редирект:
Redirect 301 /index.php?categoryID=3 http://www.сайт.com.ua/страница/
?
Если знаете как сделать, подскажите, очень надо.
Sokol:
[22.01.10 20:01]

У миня допустим есть сайт
www.mysite.xc3.net
и мне надо чтобы когда я захожу
www.mysite.xc3.net перекидовало в www.mysite2.xc3.net
но когда я ввожу www.mysite.xc3.netggg.html мене показывало то что там находиться… или www.mysite.xc3.netggg.jpg
Vetal:
[04.03.10 18:59]

Вопрос такой вот допустим есть сайт sb-money.ru ну к примеру мне не нравиться этот домен а я хочу такого вида sbmoney.ru
Сначала в robots.txt ставлю склейку вида Host: sbmoney.ru жду пока яша склеит далее ставлю редирект 301 для гугла, PR и ТИЦ перенеслися вопросы:

1) Удаляем с индекса саит sb-money.ru отстраниться ли PR и ТИЦ у sbmoney.ru.
Если нет то как сделать?
stalkerg:
[05.03.10 14:21]

Для Lighttpd сервера надо подключить модуль mod_redirect и дописать следующее:
$HTTP["host"] =~ "^www.(.*)$" {
url.redirect = ( "^/(.*)" => "http://%1/$1" )
}

усё. 🙂
Миша:
[08.03.10 18:03]

Вот такой вопрос: как сделать так, чтобы работала ссылка типа http://мой сайт?url=чужой сайт и чтобы у меня на главной http://мой сайт/index.php стояла ссылка чужого сайта из ?url=чужой сайт
валерий:
[16.03.10 18:49]

мне реально метод пхп для доров помог пасиб
passant:
[13.05.10 14:10]

вот какая проблема: хочу переставить cms на том же домене. Страниц несколько тысяч, так еще и дело в том, что на старом cms они получали несколько адресов. Как в этом случае произвести редирект с наименьшими потерями? В первую очередь чтобы не потерять страницы в выдаче.
Дмитрий:
[13.06.10 10:20]

Спасибо за статью!
Подскажите. Был сайт site.ru/html стал site.ru/php на движке Joomla на томже состе, вопрос такой: 1. Нужно ли удалять все файлы старого сайта с хоста? 2. После установки редиректа из панели админки хоста, нужноли в гугле и яндексе менять site.ru/html на site.ru/php ? Спасибо!
Александр:
[26.06.10 01:21]

Подскажите, пожалуйста, пытаюсь склеить сайт с www и без www, выполняю команду:
Redirect 301 / http://www.xxx.ru/
добавив её в .htaccess.

В итоге браузер выдает ошибку, что замечен бесконечный цикл редиректов, и отображение страницы остановлено. При этом адрес изменяется с http://xxx.ru на http://www.xxx.ru, как и было запланировано. Но почему так много редиректов?
Scolot09:
[05.07.10 14:11]

Помогите пожалуйста.
Сайт был в народе, затем переехал на домен com.
Вроде бы сделал переадресацию с народа на новый домен, но переадресация происходит только с главной страницы. А как переадресовать с остальных 230 страниц народа на новый?
Сергей Георгиевич:
[07.07.10 14:46]

Сергей, отличная статья! Если бы она мне попалась несколько месяцев назад!
Дело в том, что мой сайт для пенсионеров был создан на чистом HTML и так существовал 3 года. Я решил переделать сайт на Joomla.
Старые страницы, естественно, я удалять не стал. Ведь они давно прописаны в поисковиках и посетители на них шли напрямую, не зависимо от наличия нового сайта и главной страницы. Так они и остались, вперемешку с новыми.
Но ведь индексная страница сменилась. Вместо index.htm стала index.php
Естественно PR главной страницы обнулился. А главное, по старой ссылке люди меня не могли найти. Если сайт был указан в таком виде www.pc-pensioneru.ru/ то ссылка работала. Но, на некоторых сайтах ссылка стояла в таком виде pc-pensioneru.ru/index.htm
По такой ссылке, вместо сайта выдавалась ошибка 404
Авторов некоторых сайтов я попросил заменить ссылку, но этот путь не рациональный.
Ставил я на Joomla расширения и плагины для редиректа, но ничего не получалось.
И вот, изучил я эту статью. Без всякой надежды вставил в .htaccess код для редиректа и, каково же было мое удивление, когда редирект заработал. Ссылки с указанием index.htm стали вести на index.php
Чтобы не быть голословным, покажу, куда я вставил редирект в файле .htaccess для joomla

Вот сюда (первая и третья строка есть в файле .htaccess для joomla, а между ними я вставил редирект):

RewriteEngine On

Redirect 301 /index.htm http://www.pc-pensioneru.ru/index.php

########## Begin — Rewrite rules to block out some common exploits

Еще раз, спасибо за статью. Желаю успехов!
Серж Гронский:
[13.08.10 15:54]

RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [R=301,L]
или
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.joomla-school.com$ [NC]
RewriteRule ^(.*)$ http://joomla-school.com/$1 [R=301,L]
И какой из этих вариантов верный с www в 3-й строке или 2-й строке, какая разница?
yuriy:
[17.08.10 01:48]

Добрый вечер. подскажите пожалуйста, есть ли решение етой проблемы.
В общем есть домен http://domen.ru, в корне лежит сайт, решил прикрутить блог и поместил его в папку http://domen.ru/blog/. Можно ли как то сделать что бы при обращении к http://domen.ru/blog/ грузилось то что в етой папке, при етом адресная строка была бы -http://domen.ru/, а в остальных случаях грузилось то что в корне http://domen.ru/. Как бы блог и сайт на одном домене.
Владимир:
[30.08.10 21:00]

Вопрос такой: есть несколько страниц для переадресации, как мне в прописать чтобы все было верно указано, к примеру есть первая ссылка вида http://www.mysite.ru/rabota/doma надо сделать вида http://www.mysite.ru/rabota/doma.html Тут у меня проблем не возникло, сделал в корневом файле .htaccess как процитированно ниже:

Цитата:
«Чтобы переадресовать только страницу, сохранив PR старой страницы:
Redirect 301 /old/old.htm http://www.you.com/new.htm»

только подставил вместо htm соответсвенно html.
Но возникла иная проблема, а точнее со второй ссылкой /rabota/office делаю переадресацию на http://www.mysite.ru/rabota/office.html и у меня ПЕРВАЯ ссылка принимает страшный вид:
ttp://www.mysite.ru/rabota/office.html.doma.html

То есть у меня в корневом каталоге файла .htaccess прописано следующее:

Redirect 301 /rabota/doma http://www.mysite.ru/rabota/office.html
Redirect 301 /rabota/office http://www.mysite.ru/rabota/office.html

Помогите пожалуйста разобраться в данном вопросе.
P.s. Спасибо огромное, отличная статья.
Виталий:
[18.01.11 13:15]

Добрый день, статья супер, но вот столкнулся с такой проблемой, есть два сайта site1.com и site.com/
один из них прописан как алиас другого.
как сделать 301 редирект с одного на второй и с версий с www и без них?Такой вариант почему-то не работает.

RewriteCond %{HTTP_HOST} ^www.site.com$ [NC]
RewriteCond %{HTTP_HOST} ^www.site1.com$ [NC]
RewriteCond %{HTTP_HOST} http://site1.com$ [NC]
RewriteRule ^(.*)$ http://site.com/$1 [R=301,L]
Ильяс:
[30.01.11 08:07]

у меня такая проблема нужно сделать редирект с http://www.site.ru/index.php?option=com_content&view=article&id=108&Itemid=176&lang=ru на http://www.site.ru/index.php?option=com_content&view=article&id=107&Itemid=175&lang=ru
как сделать?
Алексей:
[31.01.11 21:09]

Помогите — нужно срочно решить вопрос.
Редирект всех страниц сайта(статики и динамических(с get параметрами) — на другой домен БЕЗ ПАРАМЕТРОВ и только на главную страницу.
Т.е. ссылки вида:
domain1.ru/ttt.php?id=3
domain1.ru/lll.php?sid=10992&per=LkOp9Utd
Редиректились на:
domain2.ru (только на морду, без всяких параметров)
(все страницы одного сайта на морду другого)
——————
заранее спасибо!
Tyrael:
[19.02.11 02:08]

Как сделать редирект со всех страниц старого домена на главную страницу нового домена, через .htaccess

Побывал так:
RewriteEngine ON
RewriteCond %{HTTP_HOST} ^domail1.ru$ [NC]
RewriteRule ^.*$ http://domail2.ru/ [R=301,L]

Но остается мусор, например:
http://domail1.ru/index.php?id=12312321&s=sadkfgawefc
редиректит на
http://domail2.ru/?id=12312321&s=sadkfgawefc

Как избавится от ?id=12312321&s=sadkfgawefc ?
Помогите пожалуйста.
Tyrael:
[19.02.11 02:09]

Как сделать редирект со всех страниц старого домена на главную страницу нового домена, через .htaccess

Побывал так:
RewriteEngine ON
RewriteCond %{HTTP_HOST} ^domail1.ru$ [NC]
RewriteRule ^.*$ http://domail2.ru/ [R=301,L]

Но остается мусор, например:
http://domail1.ru/index.php?id=12312321&s=sadkfgawefc
редиректит на
http://domail2.ru/?id=12312321&s=sadkfgawefc

Как избавится от ?id=12312321&s=sadkfgawefc ?
Помогите пожалуйста.
Юлия:
[04.03.11 03:33]

Здравствуйте. Расскажите чайнику, как перенаправить страницу с хтмл на пхп, чтобы не потерять индексацию и все такое)) Сайт не новый и не хочется рисковать его позициями… долго добивалась)))
Gohar:
[15.03.11 13:43]

Добрый день, очень нужна помощь помогите, пожалуйста, необходимо При запросе ссылок вида http://www.domain.ru/index.php, http://www.domain.ru/home и т.п. сервер должен отдавать HTTP/1.1 301 Moved Permanently. При этом в поле Location должен быть прописан URL, содержащий основной хост ресурса, т.е. http://www.domain.ru/
Сергей:
[23.03.11 16:28]

Здравствуйте, отличная статья. У меня вопрос: если мой сайт
http://xxx.lg.ua/ то где я долже поставить

RewriteCond %{HTTP_HOST} ^www.xxx.lg.ua$ [NC]
RewriteRule ^(.*)$ http://xxx.lg.ua/$1 [R=301,L]

Я правильно здесь записал?
Светлана:
[03.04.11 18:09]

Я перенесла сайт dimulik.ru с виртуального на VPS того же хостинга .
В результате все ссылки поменялись
Было
http://www.dimulik.ru/index.php/mult/51-barbarella.html
Стало
http://www.dimulik.ru/mult/51-barbarella.html
(без index.php)
Помогите, пожалуйста, настроить редирект, чтобы ссылки с index.php перенаправлялись на без index.php
o1eg:
[12.04.11 00:16]

Здравствуйте!

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

Вопрос вот в чем:

1.Какой домен делать основным(на какой редиректить) с WWW или без него и почему?

2.Чтобы избежать дублирования контента для ПС, нужны ли такие редиректы: с site.com на site.com/index.php и с site.com/page/ на site.com/page и тд?
Aram:
[12.05.11 19:46]

Буду огромоно признателень если скажите как сделать вот такую переадресацию. Скажем у меня есть сайт site.com. Перенаправил всех на новый домен newsite.com. Я хочу зайти на старий сайт без отключения редиректа. Как ето сделать?
Александр:
[07.06.11 09:27]

Реально помогла связка
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.tipograf63.ru/$1 [R=301,L]
Таким образом перекинул сайт и из рф зоны. Вот пример:
www.тольятти-типография.рф
Другие варианты почему-то глючили.
Максим:
[09.06.11 16:56]

Добрый день.
Подскажите пожалуйста с файлом .htaccess
как сделать редирект или преобразовать url вида
http://www.mysite.ru/0000001/1244214/
в
http://www.mysite.ru/?g=0000001&el=1244214
kylibin:
[03.08.11 15:08]

сделал подстановку и страница сейчас доступа по двум адресам:

http://splash-show.com/articles/konfetti.html
и по старому адресу:
http://splash-show.com/?order=suborder&record=22

а нужно чтобы только по этому — http://splash-show.com/articles/konfetti.html

как это сделать? еще поставить редирект 301?
и вообще, как проиндексирует гугл такую страницу? с каким адресом?
a22432:
[08.08.11 11:08]

Будем юзать =)
JONY:
[10.08.11 01:45]

Здравствуйте!Хорошая статья,благодарность за труды.У меня вот какой вопрос:

"Чтобы переадресовать только страницу, сохранив PR старой страницы:
Redirect 301 /old/old.htm http://www.you.com/new.htm
где:
/old/old.htm — путь и имя старой страницы"

А если у меня все старые страницы лежат в корневой папке сайта (сейчас ставлю движок,а раньше сайт был просто на html)для редиректа всех старых страниц на главную,нужно прописывать все отдельно как я понял?Тоесть примерно должно выглядеть так:

Redirect 301 /old.html http://www.sait.com/
Redirect 301 /old2.html http://www.sait.com/
Redirect 301 /old3.html http://www.sait.com/

и т.д.

Или я не прав?Заранее благодарен за помощь.
Александр:
[08.09.11 22:43]

Огромное спасибо! Полдня голову ломал)))
Дмитрий:
[09.09.11 02:17]

Ура!! Все получилось!!
Подошел этот вариант:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.gamepaintball.ru$ [NC]
RewriteRule ^(.*)$ http://gamepaintball.ru/$1 [R=301,L]

Скажите пожалуйста, этот вариант подходит для сохранения PR и ТиЦ?
rasse1:
[16.09.11 16:39]

Здравстуйте. У меня к вам вопрос , быть может вы мне поможете. Начну с того , что я чайник в php и ведении сайта , но что то понимаю. Сайт на вордпресс и в самом начале ссылки на статьи были по умолчанию , то есть кириллические.Потом я узнал что лучше на латинице , сделал латинские урлы и теперь в выдаче у меня есть как старые так и новые урлы. На старые урлы были внешние ссылки и вес терять не хотел , хотел поставить редирект 301 через htaccess со старых страниц на новые , но он почему то не ставится. Не подскажите с чем это может быть связано?

Редирект вроде ставил правильно , вот так

Redirect 301 /?tag=плащ-невидимка http://www.rasse1.com/2011/01/18/plashh-nevidimka/

Но почему то редирект не хочет срабатывать и я не могу понять почему? Может еще что прописывать надо? Или всему виной кириллический урл? Если знаете подскажите пожалуйста
bes:
[20.09.11 18:51]

Подскажите пожалуйста, на доменах рф это получится?
Сергей:
[21.11.11 13:43]

Здравствуйте.
Подскажите, пожалуйста, как сделать 301 редирект с субдомена старого домена на новый домен? Нужно что-то по-проще.
Если можно, то объяснение для чайника.
Заранее благодарен.
Мария:
[02.12.11 01:05]

я прописала редирект в файле .htaccess, но он не работает. сайт работает с двумя названиями и не переключается на зеркало, указанное в robots.txt. Что делать, помогите, пожалуйста.
acantov:
[05.12.11 00:01]

Здравствуйте!
Сколько ни перелопатил материалов по редиректу со страницы на страницу, самый лучший материал — ЗДЕСЬ!
На этом хорошо бы закончить, но созданные по этим рекомендациям и прописанные в .htaccess редиректы не редиректят!
Пишу редиректы с о страниц, на которые есть ссылки с других сайтов, но они либо не существуют (адреса с index pl, оставшиеся от использования "движка", либо страницы .html, продублированные в соответствующие папки. Вот сто записано в .htaccess:
DirectoryIndex sitename.html
Redirect 301 /index.pl?H=oldpagename http://sitename.ru/folder/newpagename.html

Redirect 301 /pagename.html http://sitename.ru/folder/pagename.html

В адресной строке после ввода остаётся адрес с index.pl,
а вместо Forbidden стало вылезать Not Found,
что намного приятнее, но проблемы не решает.
HTML страницы не редиректятся на продублированные в папках и адрес в адресной сторе не меняется.
пАчему? Что не так?!
Сергей:
[08.12.11 04:31]

Подскажите как сделать, чтобы осуществить вот такой редирект.
В оригинале нужен ответ сервера что документ по урлу удален(если не ошибаюсь код 410).
к примеру вот такой оригинал
http://site.ru/novost.html/x_2c7b69b5
если урл содержит /x_2c7b69b5 или хоть что после html то сообщить серверу что данный документ удален или если не как то 301 редирект и перенаправлял на главную страницу сайта.
Anton:
[17.12.11 21:04]

здравствуйте. есть проблема с Redirect
Redirect 301 /page.php?page=bu http://saite.ru/trubi.php?id=1
ввожу сию конструкцию а реакции нет в чем может быть дело ?
evgeniy:
[22.09.12 15:00]

спасибо.
прописал:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^wellsait.ru
RewriteRule (.*) http://www.wellsait.ru/ $1 [R=301,L]
все работает!!!

Добавить комментарий
(если вы участник SB-MONEY.RU, авторизуйтесь, чтобы подставлялись ваши логин и аватар)
Ваше имя
(макс. 20 знаков):
Комментарий
(макс. 4096 знака):


обновить код


Разрешается републикация материалов сайта с обязательным указанием автора и ссылки на сайт SB-MONEY.RU




http://sb-money.ru/article.php?a=75

Губарь Маргарита Александровна