Htaccess редирект с одной страницы на другую

Три важных совета и 14 конкретных примеров установки 301 переадресации страниц через htaccess!

Htaccess редирект с одной страницы на другую

Советы

  • Располагайте переадресации страниц в файле от частных к более глобальным (сверху вниз). Например: простая переадресация двух страниц стоит выше, чем глобальное правило редиректов с www на без www.
  • Избегайте двух, трех и т.д. последовательных редиректов. Правила должны быть настроены так, что при возникновении редиректа он должен перенаправлять пользователя (робота) только один (!) раз. Каждое лишнее переадресация – это секунды драгоценного времени отдачи страницы, это нагрузка на сервер, это нечеткие команды для поисковых роботов.
  • Не забывайте, что многие браузеры кешируют (запоминают редиректы).

Правила переадресаций

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

Самый простой вариант

Redirect 301 /test-1/ http://site.ru/test-2/

Более подробный

RewriteCond %{REQUEST_URI} ^/test/$  RewriteRule ^.*$ http://site.ru/new-test/? [R=301,L]

2. 301 редирект с www на без www (главное зеркало – домен без www)

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

3. 301 редирект с без www на www (главное зеркало – домен с www)

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

4. 301 редирект со страниц со слешем на без слеша (весь сайт)

RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} ![^/]$  RewriteRule ^(.*)/$ /$1 [R=301,L]

для Joomla (оставить вход в папки)

RewriteCond %{REQUEST_FILENAME} !-d  RewriteCond %{REQUEST_URI} ^(.+)/$  RewriteRule ^(.+)/$ /$1 [R=301,L]

5. 301 редирект со страниц без слеша на слеш (часто в CMS системах устанавливается автоматически)

RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} !/$  RewriteRule ^(.*[^/])$ /$1/ [R=301,L]

6. Один (а не два последовательных!) 301 редирект на без www и с слешем на конце адреса страницы

RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} !/$  RewriteCond %{HTTP_HOST} ^www.(.*)$  RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]     RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} ![^/]$  RewriteCond %{HTTP_HOST} ^www.(.*)$  RewriteRule ^(.*)$ http://%1/$1 [L,R=301]     RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} !/$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)$ http://%1/$1/ [L,R=301]

7. Один (а не два последовательных!) 301 редирект на c 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/ [L,R=301]     RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} !/$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)$ http://www.%1/$1/ [L,R=301]     RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} ![^/]$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]

8. Один (а не два последовательных!) 301 редирект на c www и без слеша на конце адреса страницы

RewriteCond %{REQUEST_URI} ^/$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]     RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} /$  RewriteCond %{HTTP_HOST} ^www.(.*)$  RewriteRule ^(.*)/$ http://www.%1/$1 [L,R=301]     RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} !/$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)$ http://www.%1/$1 [L,R=301]     RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} /$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)/$ http://www.%1/$1 [L,R=301]

9. Один (а не два последовательных!) 301 редирект на без www и без слеша на конце адреса страницы

RewriteCond %{REQUEST_URI} ^/$  RewriteCond %{HTTP_HOST} ^www.(.*)$  RewriteRule ^(.*)$ http://%1/$1 [L,R=301]     RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} /$   RewriteCond %{HTTP_HOST} ^www.(.*)$  RewriteRule ^(.*)/$ http://%1/$1 [L,R=301]     RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} !/$  RewriteCond %{HTTP_HOST} ^www.(.*)$  RewriteRule ^(.*)$ http://%1/$1 [L,R=301]     RewriteCond %{REQUEST_URI} !?  RewriteCond %{REQUEST_URI} !&  RewriteCond %{REQUEST_URI} !=  RewriteCond %{REQUEST_URI} !.  RewriteCond %{REQUEST_URI} /$  RewriteCond %{HTTP_HOST} ^([^www].*)$  RewriteRule ^(.*)/$ http://%1/$1 [L,R=301]

10. 301 редирект только адреса site.ru/index.php (без GET параметров) на основное зеркало site.ru

RewriteCond %{REQUEST_URI} /index.php  RewriteCond %{QUERY_STRING} ^z  RewriteRule ^(.*)$ http://site.ru/? [R=301,L]

11. 301 редирект всех адресов с index.php и GET параметрами на страницы только с GET параметрами (вырезать в url index.php)

Пример: типа site.ru/index.php?n=1 на site.ru/?n=1

RewriteCond %{REQUEST_URI} /index.php  RewriteRule ^(.*)$ http://site.ru/ [R=301,L]

Редирект на тот же url с вырезанием index.php

RewriteCond %{THE_REQUEST} ^GET.*index.php [NC]  RewriteRule (.*?)index.php/*(.*) /$1$2 [R=301,L]

12. 301 редирект url с GET параметрами (динамический URL) на статический

1 вариант (простой адрес с GET параметром)

RewriteCond %{QUERY_STRING} ^id=229  RewriteRule ^.*$ /supermodel/? [R=301,L]

2 вариант (со страницы и GET параметром)

RewriteCond %{REQUEST_URI} /test/  RewriteCond %{QUERY_STRING} ^id=229  RewriteRule ^.*$ /supermodel/? [R=301,L]

13. Все страницы одного домена на главную страницу другого домена

RewriteCond %{REQUEST_URI} (.*)  RewriteRule ^(.*)$ http://site.ru/ [L,R=301]

14. Каждая страница одного домена на такой же адрес другого url

RewriteCond %{REQUEST_URI} (.*)  RewriteRule ^(.*)$ http://site.ru/$1 [L,R=301]

15. Редирект с протокола http на https

RewriteCond %{HTTPS} !=on  RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]

Если возникает циклический редирект, то воспользуйтесь этим вариантом:

RewriteCond %{HTTPS} off  RewriteCond %{HTTP:X-Forwarded-Proto} !https  RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

slovu.net

Часто в веб разработке требуется делать переадресации с одной страницы (например, устаревшей) на другую. При этом переадресация может выполняться разными методами — как с потерей веса страницы, так и без нее. Но об этом подробнее.

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

Переадресацию страниц можно делать разными методами. Рассмотрим основные.

301 редирект через .htaccess

В корне вашего сайта есть файл (если его нет — создайте) под названием .htaccess. Откройте его на редактирование и используйте один из следующих способов.

Redirect permanent и Redirect 301 — легко делает 301 редирект с одной страницы на другую (или сайта). Первой идет старая ссылка сайта (заметьте — без домена), второй — ссылка на новую страницу (которая может быть этим же сайтом или вообще новым).

Примеры:
Redirect permanent /staraya-stranica.php http://newsait.ru/novaya-stranica.php
(здесь просто переадресуем с устаревшей страницы на новую)

Redirect 301 / http://newsait.ru/
(здесь / означает, что все начиная с главной страницы сайта и всех его подстраниц (поддиректорий) будет переадресовываться на новый домен; т.е. фактически переадресация с оного домена на другой.)

RewriteRule редирект — более сложный редирект, чем предыдущие варианты. Требует для правильной работы подключение модуля mod_rewrite на хостинге (обычно всегда включен). Часто этот метод используют для переадресации страниц с www на такие же без www и обратно. Рассмотрим их:

Редирект домена с www на не-www
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

Редирект с не-www на домен с www
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.(.*) [NC]
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

301 редирект с домена на домен и исключением для ссылки /market/vm2_market.xml. Т.е. все запросы (кроме /market/vm2_market.xml), со старого домена на новый будут выполняться.

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/market/vm2_market.xml$
RewriteRule ^(.*)$ http://newdomen.ru/$1 [L,R=301]

301 Все запросы (кроме /market/vm2_market.xml и ссылки /texts (и всеми ее «подссылками»)), со старого домена на новый будут выполняться. Также здесь работает правило переадресации определенной подссылки (RedirectMatch 301)

RewriteEngine on
RedirectMatch 301 ^/texts/data/msg/(.*).png$ http://olddomen.ru/texts/data/rimage/msg.php?id=$1
RewriteCond %{REQUEST_URI} !^/texts*
RewriteCond %{REQUEST_URI} !^/market/vm2_market.xml$
RewriteRule ^(.*)$ http://newdomen.ru/$1 [L,R=301]

RedirectMatch 301 — еще один хороший метод редиректа, он похож на Redirect 301, но имеет больший функционал. А именно, с его помощью можно делать редиректы на основе регулярных выражений.

Примеры:
RedirectMatch 301 ^/olddirectory/ http://blogprogram.ru/newdirectory/
(Здесь переадресует всю директорию на новую)

RedirectMatch 301 ^(.*)$ http://blogprogram.ru
(Переадресует все страницы со старого домена на новый с помощью 301 редиректа (вес также передается на новый сайт))

RedirectMatch 301 (.*).html$ http://blogprogram.ru$1.php
(Смена страниц с html расширения на php расширение)

RedirectMatch 301 /dirA/(.*).php$ http://blogprogram.ru/dirB/$1.php
(Запускает перенаправление из директории dirA в директорию dirB только при обращении к PHP скриптам.
http://blogprogram.ru/dirA/page.php -> http://blogprogram.ru/dirB/page.php — сработает
http://blogprogram.ru/dirB/page.html — не сработает)

 

Синтаксис для регулярных выражений
. — Точка заменяет произвольный символ.
[abc] — обозначает перечень символов, совпадающих с буквами a, b, или с.
[^abc] — перечень символов, которые не входят в указанных диапазон. Совпадёт с любым символом, кроме a, b, или с.
* — означает, что предшествующий символ может повторяться (0 или более раз).
[abc]* — команда найдёт идущие подряд символы из заданного набора.
[^abc]* — с точностью до наоборот.

.* — заменяет абсолютно любой набор символов. «.*» — найдёт все подстроки между кавычками.
^ — начало строки (в том случае, если используется в начале выражения).
$ — обозначает конец строки.

w — буква, цифра или подчёркивание _.
d — заменяет любую цифру.
D — заменяет любой символ, но не цифру.
[0-9] — заменяет любую цифру.
[a-z] — любая буква от a до z (весь латинский набор символов) в нижнем регистре.
[A-Z] — любая буква от A до Z в ВЕРХНЕМ регистре.
[a-zA-Z] — любая буква от a до Z в любом регистре.
[a-Z] — то же самое.

Спецсимволы, используемые в правилах и их значения.
^ — спецсимвол начала строки;
$ — спецсимвол конца строки;
! — спецсимвол отрицания;
. — точка, заменяет любой символ, но только один;
() — группировка;
— «экранирующий» слеш, следующий символ после него считается обычным, а не спецсимволом.

Модификаторы используются после обычных, спецсимволов или их групп и позволяют расширить возможности шаблонов для срабатывания правил.
? — символ повторяется 0 или 1 раз.
+ — повторяется от 1 до 65536 раз.
* — повторяется от 0 до 65536 раз.

Флаги, задают доп. опции для используемого правила. Перечисляются в квадратных скобках через запятую, скажем [NC] или [R=301,L].
NC — флаг NoCase, отключающий проверку регистра символов при срабатывании правила.
R — флаг Redirect, производит процесс остановки изменения URL-адреса и возвращает результат. Чаще всего используется значение R=301, но возможны и другие для временных перенаправлений (302, MOVED TEMPORARY).
L — флаг Last, останавливает формирования URL-адреса и строка считается окончательной.

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

Пример:
<?php header(«HTTP/1.1 301 Moved Permanently»);
header(«Location: http://blogprogram.ru/category/»); exit(); ?>

Редирект через javascript. Также переадресацию можно сделать и на обычном javascript (правда без передачи веса страницы).

Пример:
<script>window.location=»http://blogprogram.ru/category/»;</script>
(обычная переадресация на страницу сайта)
<script>alert(«Сейчас вы будете переадресованы!»); window.location=»http://blogprogram.ru/category/»;</script>
(обычная переадресация на страницу сайта перед которой пользователю выводится сообщение)

 

blogprogram.ru

Перенаправление доменов сайта

Редиректы используются для информирования серверов о том, что контент сайта был перенесен с одного URL-адреса на другой. Делать это необходимо, когда исходный веб-адрес (цель входящей ссылки) занимает высокие позиции в выдаче поисковых систем (SERP). В этом случае редирект сообщает поисковому роботу, что нужный контент был перенесен, предоставляя пользователю ссылку на новый адрес.

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

Кроме этого перенаправление позволяет одинаковому контенту быть доступным по различным веб-адресам. Все альтернативные адреса перенаправляются в сторону приоритетного домена сайта:

Типы редиректов

Различают клиентские и серверные HTML meta redirect. В случае с серверными перенаправлениями происходит передача кодов состояния HTTP пользовательским агентам (браузерам и поисковым роботам).

Когда дело доходит до перенаправлений на стороне клиента, все выглядит по-другому: они выполняются без какого-либо ответа, и никакие коды состояний не передаются. Именно поэтому не все системы поддерживают редирект. Это может привести к ситуациям, когда посетители остаются на оригинальном сайте и не перенаправляются на новую страницу.

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

Серверные редиректы

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

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

  • redirect 301 HTML – перемещен навсегда: запрашиваемый ресурс теперь постоянно доступен по новому URL. Старый URL с этого момента становится недействительным;
  • 302 – перемещен временно: запрашиваемый ресурс доступен по новому URL. При этом исходный URL по-прежнему сохраняет свою актуальность.

Если код состояния HTTP не определен явно, сервер передает код состояния 302 во время редиректа. Это не всегда необходимо и рекомендуется вручную вводить нужный код состояния при каждой переадресации, так как это позволяет снизить вероятность ошибки индексации, как в ситуации взлома URL. В отличие от редиректа 301, код состояния 302 сообщает поисковым роботам, что первоначальный URL должен оставаться индексируемым. Предназначенный для постоянной работы адрес редиректа конкурирует с адресом, указанным в индексе поисковой системы.

Перенаправление через .htaccess

.htaccess представляет собой конфигурационный файл на сервере Apache, используемый для перезаписи центральной конфигурации на уровне каталогов. Этот файл позволяет администраторам сайта выполнять специфичные настройки каталога для доменов и их подкаталогов. Одна из функций файла .htaccess включает в себя серверные перенаправления отдельных адресов на другие URL.

После того, как файл .htaccess со следующим кодом помещается в основные каталоги, запросы на исходный домен перенаправляются серверной стороной на домен www.example.com ‘‘:

Строка кода начинается с redirect 301 HTML и определяет код состояния HTTP, который будет передан сервером. Далее следует путь к контенту, который должен быть перенаправлен. В данном случае будет перенаправлено все содержимое. В заключении целевой URL перенаправляется на URL пользовательского агента: ‘http://www.example.com’.

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

.htaccess перенаправление из подкаталога на другой URL

Вот как выглядит постоянное перенаправление на сервере Apache с активным модулем mod_rewrite:

В первой строке кода модуль mod_rewrite сервера Apache активируется с помощью команды ‘RewriteEngine On’. После этого указывается «RewriteRule» с путем к файлу перенаправления и адресом назначения. Символы ^ и $ обозначают начало и конец пути, а L означает последнее правило для соответствующего запроса. R = 301 пересылает статус HTTP 301.

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

Перенаправления с помощью PHP

HTML redirect на другую страницу может также быть выполнен PHP скриптом (например, в index.php). Следующий код отображает постоянное перенаправление к целевому URL ‘www.example.com’:

При передаче через PHP скрипт код состояния HTTP определяется с помощью функции «header» во второй строке кода. В этом примере должен быть выполнен постоянный 301 редирект. Учитывая, что серверные перенаправления обычно выполняются на временной основе, то для постоянного редиректа нужно явно указать код состояния 301. Адрес назначения перенаправления также прописан в ‘header‘.

В примере перенаправление происходит на ‘http://www.example.com‘. Функция ‘exit‘ в четвертой строке кода заканчивает сценарий и препятствует выполнению следующей строки. Чтобы редиректы работали через PHP скрипт, блок кода должен быть расположен в начале HTML страницы. Это препятствует передаче сервером содержимого HTML на страницу перенаправления.

Клиентские редиректы

Если выполнение перенаправления на стороне сервера невозможно по техническим причинам, то можно использовать клиентское решение. Для этого применяется HTML метатег «refresh» и JavaScript. Недостатком перенаправления на стороне клиента является то, что серверы не передают коды состояния HTTP запрашивающим браузерам или поисковым роботам.

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

Redirect HTML index на стороне клиента оказывают негативное влияние на поисковый индекс. С клиентскими редиректами 301 не происходит явного исключения из индексации через код состояния HTTP. Это может привести к перенаправлению доменов, конкурирующих с доменами назначения, когда речь заходит о поисковых запросах, связанных с рейтингом. В отличие от серверных редиректов, которые остаются невидимыми для пользователей, клиентские всегда сопровождаются задержками.

Переадресация с помощью HTML метатега refresh

HTML перенаправления реализуются через метатеги с атрибутом ‘http-equiv’. Для этого нужен простой HTML-файл и соответствующий тег в заголовке для создания перенаправления. Чтобы посетители получали информацию о редиректе, в HTML-документе должно быть установлено соответствующее уведомление: «Пожалуйста, подождите. Вы будете перенаправлены … ‘. Простое перенаправление с помощью refresh выглядит следующим образом:

Клиенту будет предложено перенаправление на новую страницу через метатег http-equiv = «refresh». То, как это происходит, определяется в атрибуте ‘content’. Приведенный выше пример перенаправляет пользователей на домен ‘www.example.com‘ через десять секунд.

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

JavaScript предлагает простую возможность HTML redirect домена на стороне клиента. Но JavaScript поддерживается не всеми браузерами из-за соображений безопасности. Использование данного решения также может создать проблемы для поисковых роботов и пользователей с активными дополнениями NoScript. Вот как выглядит код перенаправления с помощью JavaScript:

Самое главное здесь это третья строка кода. Объект ‘window.location‘ используется, чтобы сделать ссылку на текущий адрес сайта. Команда ‘replace‘ инструктирует браузер направить пользователя к домену назначения (‘www.example.com‘).

Перевод статьи “Domain redirects via .htaccess, PHP, HTML, and JavaScript” был подготовлен дружной командой проекта Сайтостроение от А до Я.

www.internet-technologies.ru

Зачем делать редирект 301?

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

1.  Изменение имени файлов и/или их расширений: редирект 301 может быть использован, когда вы хотите изменить файловую структуру вашего сайта или изменить расширения файлов (например, переход от html к php). Это очень важный момент, потому что, если 301 редирект настроен правильно, то пользователи, набрав в great-world.ru/oldfile.html, будут перенаправлены на great-world.ru/newfile.php или ту страницу, которую вы укажете в .htaccess.

2. Переезд на новый домен: редирект 301 – это ключевой момент при изменении доменного имени. Когда пользователи будут переходить на страницы на вашем старом домене, их автоматически будет перенаправлять на новые страницы на новом доменном имени. Таким образом, если кто-то введет или нажмет на ссылку great-world.ru/page1.html, он будет автоматически перенаправлен на newdomain.com/page1.html.

3.SEO: редиректы 301 широко используются в SEO, потому что они сообщают поисковым роботам, что страница перенаправляется навсегда. Также, с помощью 301 редиректа можно без потерь перенести позиции старых страниц на новые. Даже наглядную картинку для Вас подглотовил:

роль редиректа 301 в поисковой оптимизации

4.Партнерские ссылки:  редиректы также обычно используются для скрытия партнерских ссылок, что может увеличить активность пользователей , и позволит не использовать прямые исходящие ссылки на партнерские программы. Вы создаете страницу с соответствующим названием файла, и применяете к ней перенаправление 301 на партнерский сайт. Например, вместо размещения прямой ссылки на partnerkaprimer.com/affiliate-offer.html, вы создадите страницу на своем сайте с именем файла “merchantxyz.html”, и при переходе пользователей на эту страницу vashdomen.ru/click/merchantxyz.html, они автоматически будут перенаправляться на partnerkaprimer.com/affiliate-offer.html. Как правило, вам ещё нужно добавить атрибут rel=”nofollow” к ссылке на вашу страницу merchantxyz.html, чтобы партнерская ссылка не индексировалась.

5. PHP:  редирект может быть использован вместо PHP-перенаправления, но если на вашем сайте много ссылок на партнерские ресурсы, то надежнее создать простой скрипт, который будет перенаправлять пользователей.

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

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

Пример 1. Вы изменили имя одного из файлов на сайте.

Старое имя файла /oldpage.html, новое — /newpage.html. В файле .htaccess вам нужно прописать такой код:

redirect 301 /oldpage.html http://www.vashdomen.ru/newpage.html

Пример 2. Вы заменили .html страницу на .php, но имя оставили то же.

Старое имя файла /yourpage.html, новое — /yourpage.php. Код практически идентичный предыдущему, только меняем расширение:

redirect 301 /yourpage.html http://www.vashdomen.ru/you-page.php

Пример 3. Вы разместить скрытую ссылку на сайт партнерской программы. 

Допустим партнерская ссылка такая — partnerkaprimer.com.com&affid=64564242. Честно говоря, такая ссылка вряд ли внушает спокойствие и доверие пользователей. Сначала стоит создать страницу /merchant-offer.html на вашем сайте, с которой мы будем перенаправлять пользователей на партнерское предложение. Теперь осталось разместить ссылку на страницу vashdomen.ru/merchant-offer.html и не забыть об атрибуте rel=”nofollow”. Также можно оформить ссылку в виде кнопки или изображения. В файле .htaccess вам нужно прописать:

redirect 301 /merchant-offer.html http://www.merchantdomain.com&affid=64564242

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

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.vashdomen.ru
RewriteRule ^(.*)$ http://vashdomen.ru/$1 [R=301,L]

И наоборот:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^vashdomen.ru
RewriteRule (.*) http://www.vashdomen.ru/$1 [R=301,L]

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

great-world.ru

You May Also Like

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.