301 редирект

hoodenkiy

Постоялец
Регистрация
7 Июн 2007
Сообщения
62
Реакции
8
Есть задача:

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


index.php?page=menu1_2

Перенаправить на
Для просмотра ссылки Войди или Зарегистрируйся

Весь инет обискал но предложенные варианты не работают
Может кто нить подскажет?
 
1.Простой редирект (в файле .htaccess или httpd.conf для Apache:(
Redirect 301 / Для просмотра ссылки Войди или Зарегистрируйся
где:
Redirect 301 - это инструкция, говорящая что страница перемещена
/ - означает, что все с верхнего уровня сайта, включая все подкаталоги, будет переадресовано
Для просмотра ссылки Войди или Зарегистрируйся - новая страница или сайт (не забывайте поставить последний "/", если переадресация идет на сайт).
Чтобы переадресовать только страницу, сохранив PR старой страницы:
Redirect 301 /old/old.htm Для просмотра ссылки Войди или Зарегистрируйся
где:
/old/old.htm - путь и имя старой страницы

Аналогичный синтаксис для переадресации сайта:
RedirectPermanent / Для просмотра ссылки Войди или Зарегистрируйся

Пример переадресации каталога:
RedirectPermanent /old-directory Для просмотра ссылки Войди или Зарегистрируйся
Например, зашедших в test переадресуем на Для просмотра ссылки Войди или Зарегистрируйся, остальных на enter.test.com (порядок следования записей важен:(

Redirect permanent /test Для просмотра ссылки Войди или Зарегистрируйся
Redirect permanent / Для просмотра ссылки Войди или Зарегистрируйся
Примечание: для моих целей (изменение домена) хватило первого варианта простого 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 Для просмотра ссылки Войди или Зарегистрируйся

при запросе /index.php?page=menu1_2 кидать будет на url :yahoo:
 
Огромное спасибо, спас меня брат!
 
Раз подняли вопрос про 301 тоже спрошу. Вот такая проблема намечается есть сайт сейчас делаю новый меняю url на чпу. Собственно вопрос при редиректе вес полностью передастся или часть пропадет?
 
  • Нравится
Реакции: Nei
Раз подняли вопрос про 301 тоже спрошу. Вот такая проблема намечается есть сайт сейчас делаю новый меняю url на чпу. Собственно вопрос при редиректе вес полностью передастся или часть пропадет?
Если будет правильный редирект - вес передастся полностью, вопрос времени только.
 
В одно время тоже была подобная задача, но и ещё в добавок надо было склеить 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. Если юзер переходит к примеру по закладке не на главную страницу, а на
Для просмотра ссылки Войди или Зарегистрируйся
то строка адреса автоматом заменяется на
Для просмотра ссылки Войди или Зарегистрируйся
3. Дописывая по анологии строчки, можно склеить и 2 и 3 и более доменов.
4. Самое главное, что код рабочий. Пользуйтесь!
 
На конференции по СЕО Каширин говорил, что надо использовать 302 редирект вместо 301, т.к. в случае 301 редиректа (документ перемещен навсегда) поисковики просто удаляют из индекса старый документ и индексируют новый, а в случае 302 редиректа (временно перемещен) в индексе будут оба документа, причём вес старой страницы перейдёт на новую.

Поправьте меня если я что-то напутал.
 
Поисковые системы зазеркалят домены в обоих случаях. Это 100%. Иначе бы все мои домены не склеялись бы.
Но имхо, предпочтительнее и грамотнее использовать 301 редирект.
 
На конференции по СЕО Каширин говорил, что надо использовать 302 редирект вместо 301, т.к. в случае 301 редиректа (документ перемещен навсегда) поисковики просто удаляют из индекса старый документ и индексируют новый, а в случае 302 редиректа (временно перемещен) в индексе будут оба документа, причём вес старой страницы перейдёт на новую.
Поправьте меня если я что-то напутал.

Гугл в своих рекомендациях говорит четко и конкретно только про 301 редирект.
Еще говорит, что если есть одинаковые страницы, а редирект нет возможности сделать, то нужно использовать мета тег rel="canonical"
 
Назад
Сверху