301 редирект

Тема в разделе "Тех. вопросы", создана пользователем hoodenkiy, 25 дек 2009.

  1. hoodenkiy

    hoodenkiy Постоялец

    Регистр.:
    7 июн 2007
    Сообщения:
    62
    Симпатии:
    8
    Есть задача:

    Поисковик по запросу выдает внутряк, нужно передать вес главной странице
    Я так понимаю нужен 301 редирект, подскажите что нужно написать в htaccess?


    index.php?page=menu1_2

    Перенаправить на
    http://my-site.com

    Весь инет обискал но предложенные варианты не работают
    Может кто нить подскажет?
     
  2. polla

    polla Создатель

    Регистр.:
    22 май 2009
    Сообщения:
    36
    Симпатии:
    7
    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]

    Добавлено через 2 минуты
    соответственно для вас на простом варианте
    Redirect 301 /index.php?page=menu1_2 http://my-site.com

    при запросе /index.php?page=menu1_2 кидать будет на url :yahoo:
     
    opa100pe, andre740 и hoodenkiy нравится это.
  3. hoodenkiy

    hoodenkiy Постоялец

    Регистр.:
    7 июн 2007
    Сообщения:
    62
    Симпатии:
    8
    Огромное спасибо, спас меня брат!
     
  4. Alex-xv

    Alex-xv Постоялец

    Регистр.:
    10 июл 2009
    Сообщения:
    110
    Симпатии:
    5
    Раз подняли вопрос про 301 тоже спрошу. Вот такая проблема намечается есть сайт сейчас делаю новый меняю url на чпу. Собственно вопрос при редиректе вес полностью передастся или часть пропадет?
     
    Nei нравится это.
  5. zerdek

    zerdek

    Регистр.:
    29 ноя 2007
    Сообщения:
    346
    Симпатии:
    50
    в идеале вес должен передаться полностью, только у поисковиков это может занять пару месяцев.
     
  6. Nei

    Nei Nosce te ipsum

    Регистр.:
    5 сен 2009
    Сообщения:
    599
    Симпатии:
    468
    Если будет правильный редирект - вес передастся полностью, вопрос времени только.
     
  7. Nedikoff

    Nedikoff Создатель

    Регистр.:
    15 авг 2009
    Сообщения:
    28
    Симпатии:
    14
    В одно время тоже была подобная задача, но и ещё в добавок надо было склеить 3 домена, да и + еще с www и без, и при этом не потеряв pr.
    Помог следующий код:

    <FilesMatch "robots.txt$">
    RewriteEngine off
    </FilesMatch>
    Options +FollowSymLinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www\.первый_старый_сайт\.ru$ [NC]
    RewriteRule ^(.*)$ http://новый_сайт.ru/$1 [L,R=301]
    RewriteCond %{HTTP_HOST} ^первый_старый_сайт_без_ввв\.ru$ [NC]
    RewriteRule ^(.*)$ http://новый_сайт.ru/$1 [L,R=301]
    RewriteCond %{HTTP_HOST} ^www\.второй_старый_сайт\.ru$ [NC]
    RewriteRule ^(.*)$ http://новый_сайт.ru/$1 [L,R=301]
    RewriteCond %{HTTP_HOST} ^второй_старый_сайт_без_ввв\.ru$ [NC]
    RewriteRule ^(.*)$ http://новый_сайт.ru/$1 [L,R=301]
    RewriteCond %{HTTP_HOST} ^www\.новый_сайт_с_ввв\.ru$ [NC]
    RewriteRule ^(.*)$ http://новый_сайт.ru/$1 [L,R=301]

    Что делает код:
    1. Передаёт PR со всех остальных(с www и без) "новому сайту".
    2. Если юзер переходит к примеру по закладке не на главную страницу, а на
    http://www.старый_сайт.ru/страница_какая_то.php
    то строка адреса автоматом заменяется на
    http://новый_сайт.ru/страница_какая_то.php
    3. Дописывая по анологии строчки, можно склеить и 2 и 3 и более доменов.
    4. Самое главное, что код рабочий. Пользуйтесь!
     
  8. ShaDeRzz

    ShaDeRzz

    Регистр.:
    16 окт 2007
    Сообщения:
    176
    Симпатии:
    65
    На конференции по СЕО Каширин говорил, что надо использовать 302 редирект вместо 301, т.к. в случае 301 редиректа (документ перемещен навсегда) поисковики просто удаляют из индекса старый документ и индексируют новый, а в случае 302 редиректа (временно перемещен) в индексе будут оба документа, причём вес старой страницы перейдёт на новую.

    Поправьте меня если я что-то напутал.
     
  9. Nedikoff

    Nedikoff Создатель

    Регистр.:
    15 авг 2009
    Сообщения:
    28
    Симпатии:
    14
    Поисковые системы зазеркалят домены в обоих случаях. Это 100%. Иначе бы все мои домены не склеялись бы.
    Но имхо, предпочтительнее и грамотнее использовать 301 редирект.
     
  10. helloker

    helloker Постоялец

    Регистр.:
    2 май 2008
    Сообщения:
    60
    Симпатии:
    6
    Гугл в своих рекомендациях говорит четко и конкретно только про 301 редирект.
    Еще говорит, что если есть одинаковые страницы, а редирект нет возможности сделать, то нужно использовать мета тег rel="canonical"