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

Содержание:

Способ 3. Простейший javascript-редирект.

Разница этого редиректа в том — что сначала в браузер загружается страничка HTML — потом после её загрузки происходит редирект. Может ощущаться некоторая задержка с появлением «белого экрана» в момент редиректа — в этом небольшой минус перед header-редиректом. Не сработает на компьютерах/браузерах, где отключен javascript. Соответственно REFERER виден именно тот, где был код редиректа (т.е. сама страничка с кодом будет как источник перехода).

Оформляется так (в секции <body> или <head>):

<script >
document.location = ‘//leonov-do.ru/’;
</script>

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

Виды редиректов

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

  • постоянность или временность перенаправления;
  • доступность старой страницы после настройки.

Рассмотрим каждый из видов подробнее.

301

301-й можно сравнить с постоянным переездом. Когда вы уезжаете из одного дома в другой и точно не вернётесь в старый.

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

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

Вариант оформления страницы ошибки 404

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

302

Редирект 302 является временным. Возвращаясь к предыдущему примеру с переездом в новый дом, его можно сравнить, например, поездкой на дачу на летние каникулы. Городская квартира при этом остаётся в вашем доступе и вернуться туда можно в любой момент.

Процесс направления со старой страницы на новую настраивается временно, параметры старой страницы остаются привязаны к ней, а не переносятся на новую.

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

303 и 307

307-й (Temporary Redirect) для поисковых систем фактически является точной репликой 302-го (Found). Это временное перенаправление трафика на новую страницу с сохранением всех параметров прежней.

Команда, которую получает браузер, если на странице настроен 303-й тип, выглядит следующим образом (документ найден и его можно отобразить, используя GET). В HTTP 1.1 он рассматривается как полная замена 302-го редиректа.

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

Несколько примеров использования 301 редиректа

Cклеивания зеркал сайта

Для поисковой системы modx-gu.ru и www.modx-gu.ru – разные сайты. Один из них будет проиндексирован, второй же окажется дублем. Чтобы подобного не произошло, делают так называемое «склеивание» сайта. С сайта с «www» указывается перенаправление на сайт без «www». Это делается в файле .htaccess, с помощью следующей конструкции:

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

Если на начальном этапе этого не было сделано, и в индекс попала версия сайта с «www», стоит сделать обратное перенаправление.

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

Перенаправление на страницу с другим url

При использовании ЧПУ ссылок иногда возникает ситуация, когда url необходимо изменить, но исходная страница уже находится в индексе. Чтобы не потерять позиции и вес при изменении ссылки, стоит установить перенаправление с исходной ссылки с на измененную.

RewriteEngine On
RewriteRule ^(.*)url.html$ http://your-site.ru/new-url.html 

Перенаправление на другой домен

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

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

Редирект алиасов на основной домен сайта

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

RewriteEngine On
RewriteCond %{HTTP_HOST} ^your-site.com$ 
RewriteCond %{HTTP_HOST} ^www.your-site.com$ 
RewriteCond %{REQUEST_URI} !^/robots.*
RewriteRule ^(.*)$ http://your-site.ru/$1 

Убираем расширение с помощью 301 редиректа

Страницы, доступные по ссылкам с разными расширениями также признаются дублями. К примеру, есть страницы, с расширением .html и без него. Если вам нужно убрать его:

RewriteEngine on
RewriteRule ^((+/)*+)$ /$1.html 

Перенаправление с index.php на главную

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

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

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

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^(.+)/$
RewriteRule ^(.+)/$ /$1 

Редирект для url с параметрами

Если исходный адрес содержит какой-либо параметр (например, http://your-site.ru/articles.php?section=1. Параметр здесь «section=1» ), то перенаправляющая конструкция будет иметь следующий вид:

RewriteEngine On
RewriteCond %{QUERY_STRING} section=1
RewriteRule ^index.php http://your-site.ru/articles.php? 

Полезное видео по теме:

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

Существует несколько вариантов обращения к сайту — с www и без www (например, pingoblog.ru и www.pingoblog.ru). Пользователю все равно, как именно вводить 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
<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>
RewriteCond %{HTTP_HOST} ^site.ru$
RewriteRule (.*) http://www.site.ru/$1 

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

Options +FollowSymLinks
RewriteEngine On
<FilesMatch "robots.txt$">
RewriteEngine off
</FilesMatch>
RewriteCond %{HTTP_HOST} ^www.site.ru$
RewriteRule (.*) http://site.ru/$1 

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

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

RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.html\ HTTP/
RewriteRule ^index\.html$ http://www.site.ru/ 
RewriteCond %{THE_REQUEST} ^{3,9}\ /index\.php\ HTTP/
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:

Яндекс Webmaster

Ну и для Google:

Google Webmaster

Материал обновлен: 12 января 2016 года.

Перенаправление через mod_alias

Эти примеры показывают, как перенаправить из одного места в другое с помощью модуля псевдонимов Apache . Кроме того, вы можете изменить код состояния на любой другой (например, изменить с 301 на 302).

Перенаправить страницу в том же домене

Redirect 301 /page.php /page.html

1 Redirect301page.phppage.html

Перенаправить страницу на другой домен

Redirect 301 /page.php https://example.com/page.html

1 Redirect301page.php https//example.com/page.html

Перенаправить весь сайт

Redirect 301 / https://example.com/

1 Redirect301https//example.com/

Перенаправить весь сайт в подкаталог

Redirect 301 / https://example.com/subdirectory/

1 Redirect301https//example.com/subdirectory/

Перенаправление из подкаталога на другой сайт

Redirect 301 /subdirectory https://example.com/

1 Redirect301subdirectory https//example.com/

Перенаправление с .html на .php

RedirectMatch 301 (.*)\.html https://example.com/$1.php

1 RedirectMatch301(.*)\.html https//example.com/$1.php

Запретить доступ к странице

Redirect 403 /page.html

1 Redirect403page.html

Сообщите посетителям, что страница исчезла

Redirect 410 /page.html

1 Redirect410page.html

Что такое редиректы?

Редиректы — это способ перенаправлять пользователей сайтов на URL, отличный от того, что они запросили. Дубли страниц ухудшают ранжирование сайта, а редиректы помогают с ними бороться.Ещё их используют когда нужно создать новую страницу взамен уже существующей и при этом сохранить позиции и трафик. Существует 9 видов редиректов, но в SEO-практике активно применяются лишь три из них:

301 Moved Permanently (постоянный редирект) — указывает, что документ перенесён на новый URL навсегда. Когда SEO-специалисты или разработчики говорят о редиректе, они почти всегда имеют в виду 301 редирект. Старый адрес исчезает из выдачи, его место с сохранением позиций занимает новый.

302 Found, 302 Moved Temporarily (найдено, перемещено временно) — документ перенесён временно, например, переводит пользователя на страницу акции (распродажи), не меняя содержимое старой страницы. При этом в выдаче остается старый адрес страницы, ведь на новый она перемещена временно.

307 Temporary Redirect (временный редирект) — запрашиваемый документ на короткое время доступен по другому URL с сохранением метода передачи запроса (GET, POST) В целом выполняет ту же задачу что и 302 редирект.

Общие советы по настройке редиректов

1. Делайте редиректы только на релевантные страницы, со статусом 200 (OK).Чем более релевантна страница акцептора (та что принимает редирект) странице донору, тем быстрее они склеятся и тем больше веса она передаст.

2. Не используйте редирект там, где лучше поставить rel=canonical

Если контент страниц дублируется, но вам важно оставить страницы доступными для пользователей, используйте rel=canonical вместо редиректа. Например, если есть несколько версий контента (для печати, для мобильных,)

3. Не используйте редиректы для файла robots.txt

Этот совет в большей мере касается ПС Яндекс — для нее важно, чтобы при смене домена или переезде на защищенный протокол старый robots.txt был доступен роботам — так быстрее происходит склеивание доменов

4. Избегайте двух, трёх и более редиректов подряд. Каждый новый редирект — это потеря времени загрузки, лишняя нагрузка на сервер и возможная потеря передаваемого веса страницы.

5. В файле .htaccess вначале используйте переадресации страниц с более высоким уровнем вложенности, например:

  • сначала редирект с site.com/category-1/subcategory-1/ на site.com/category-1/subcategory-2/;
  • затем с site.com/category-0/ на site.com/category-0;
  • и последними — глобальные правила типа редиректа всех страниц без «/» на страницы с «/».

На больших ресурсах с множеством редиректов несоблюдение этого правила ведёт к возникновению страниц с 404 ошибкой.

6. Браузеры кешируют редиректы — чтобы проверить их работу, сбрасывайте кеш или используйте специализированные сервисы.

Важно!Хотя ссылочный вес и передается в полной мере, при массовом применении редиректов, например, при переезде на https, возможно проседание позиций и трафика страниц на 10-15%, с последующим восстановлением в течение 2-4 недель. Некоторые seo-специалисты, чтобы исключить возможность проседания трафика, советуют сначала настраивать 302 редирект, а после появления в выдаче большинства новых страниц — менять его на 301

Сразу предупреждаем, что такое использование 302 редиректа идёт вразрез с рекомендациями Google, но никто не запрещает вам экспериментировать 🙂

Массово проверить статус страниц сайта можно, используя программы для аудита сайта Netpeak Spider, SEO Screaming Frog и сервис Serpstat.

Канонизация домена сайта или как склеить домен?

Чтобы настроить редирект с www на без www нам необходимо знать в каких случаях будет происходит склейка домена и зачем она нужна.

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

Во-вторых, это используется при 1) возникновении необходимости убрать дублированный контент; 2) переезде на новый домен.

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

Для склейки домена с www с адресом без www:

Для склейки без www на www:

Для правильного выбора основного варианта склейки рекомендуется учитывать:

  • какой из вариантов находится в ТОПе поисковой выдачи;
  • по какому из вариантов больше страниц в индексе.

Канонизация слеша в конце URL

При разработке веб-ресурса очень важно выбрать корректный формат с использованием косой черты в конце урла, поскольку для поисковых система два варианта указанные ниже это два разных URL-адреса:

  • http://www.site.com/cat1/
  • http://www.site.com/cat1

Поэтому, после выбора одного варианта на веб-ресурсе вам стоит настроить такие переадресации:

Чтобы удалить слеш в конце:

Для добавления слеша в хвосте адреса:

Переадресация с одной страницы на другую:

Переадресация для зеркал домашней страницы

Нижеприведенный фрагмент кода дает гарантию, что все урлы главной страницы, включающие несколько вариантов прямых ссылок на страницу, к примеру, default.htm или index.html, будут перенаправлены на каноническую домашнюю страницу, http://www.site.com/:

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

Но если урл старого каталога начинается непосредственно после имени домена: www.site.com/old-catalog/, то стоит применить следующий код

Переадресация при изменении файловых расширений

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

Примеры использования для предотвращения появления на сайте дубликатов страниц

Построение редиректов из различных доменов и поддоменов

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

В идеале все дополнительные доменные адреса, включая www.site.ru, www.site.net, test.site.com, будут переадресованы на основной источник www.site.com.

Как удалить несколько слешей либо тире в адресе сайта

Бывают случаи, когда по неизвестным причинам адрес может включать несколько слешей, например, www.site.com/catalog////page-3.html. Здесь необходимо проставить 301-редирект на страницу с одним слешем www.site.com/catalog/page-1.html:

Также доступна опция объединения нескольких тире в одно из URL-адреса: от www.site.com/catalog/page-1.html:

Как сделать переадресацию с любого URL на адрес с нижним регистром?

Так как поисковики учитывают разницу с разным регистром букв, при разработке веб-ресурса настоятельно рекомендуется добавлять все URL-адреса именно в нижнем регистре

Но если вы изначально не акцентировали внимание на этом моменте, то лучше использовать такой алгоритм перенаправления на уровне php -скрипта:

Правила Redirect, RewriteRule и RewriteCond

1.1. Директива Redirect

Синтаксис Redirect:

Redirect — устанавливает прямой редирект с одной страницы на другую.

В status пишут код редиректа. Является необязательным параметром. Чаще всего пишут 301, что сигнализирует о постоянном смене адреса страницы.

Важно, чтобы страница «/откуда» была прописана в формате без указания полного адреса сайта, но с указанием полного относительного адреса URL начиная со слэша «/» (т.е. с корня сайта)

Страницу куда идёт редирект нужно писать полностью, т.е. абсолютный адрес страницы URL: с названием домена и протокола http или https.

Например:

Можно также писать по другому:

1.2. Директива RewriteRule

Директива RewriteRule устанавливает правила перехода. Синтаксис следующий:

  • При внешнем редиректе меняется урл адреса в строке браузера — «»;
  • При внутреннем — не меняет урл адреса в строке браузера — «» или «»;

1.3. Директива RewriteCond

Директива RewriteCond определяет условия, при котором выполняется правила в RewriteRule. Синтаксис:

Например, этими условиями могут быть браузер пользователя, IP-адрес, заголовок и т.д.

1.4. Директива RedirectMatch

Директива RedirectMatch аналогична Redirect с той лишь разницей, что позволяет записывать регулярные выражения. Синтаксис:

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

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

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

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

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

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

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

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

И наоборот:

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

Использование функции PHP header() для редиректа URL-адреса

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

<?php
$new_url = 'https://example.com/final.php';
header('Location: '.$new_url);
?>

Здесь мы используем PHP-функцию header(), чтобы создать редирект. Нужно поместить этот код перед любым HTML или текстом. Иначе вы получите сообщение об ошибке, связанной с тем, что заголовок уже отправлен. Также можно использовать буферизацию вывода, чтобы не допустить этой ошибки отправки заголовков. В следующем примере данный способ перенаправления PHP показан в действии:

<?php
ob_start();
$new_url = 'https://example.com/final.php';
header('Location: '.$new_url);
ob_end_flush();
?>

Чтобы выполнить переадресацию с помощью функции header(), функция ob_start() должна быть первой в PHP-скрипте. Благодаря этому не будут возникать ошибки заголовков.

В качестве дополнительной меры можно добавить die() или exit() сразу после редиректа заголовка, чтобы остальной код веб-страницы не выполнялся. В отдельных случаях поисковые роботы или браузеры могут не обращать внимания на указание в заголовке Location. Что таит в себе потенциальные угрозы для безопасности сайта:

<?php
$new_url = 'https://example.com/final.php';
header('Location: '.$new_url);
exit();
?>

Чтобы прояснить ситуацию: die() или exit() не имеют отношения к редиректам. Они используются для предотвращения выполнения остальной части кода на веб-странице.

При PHP перенаправлении на страницу рекомендуется использовать абсолютные URL-адреса при указании значения заголовка Location. Но относительные URL-адреса тоже будут работать. Также можно использовать эту функцию для перенаправления пользователей на внешние сайты или веб-страницы.

Redirecting a single URL

Using Redirect in an .htaccess file enables you to redirect users from an old page to a new page without having to keep the old page. For example, if you use index.html as your index file and then later rename index.html to home.html, you could set up a redirect to send users from index.html to home.html. For example:

Redirect to a local site file

Redirect /path/to/old/file/old.html /path/to/new/file/new.html

Redirect to an external site file

Redirect /path/to/old/file/old.html https://www.example.com/new/file/new.html

The first path

The first path to the old file must be a local UNIX path, NOT the full path. So, if the .htaccess file is in the directory /example.com, you would not include /home/username/example.com in the local UNIX path. The first represents the example.com directory. If the old file was in that directory, you would follow the with the old file name.

The second path

The second path to the new file can be a local UNIX path, but can also be a full URL to link to a page on a different server or the same server.

Ruby on Rails переадресации

Из любого контроллера Rails проекта мы можем быстро перенаправить на новый сайт с redirect_to. Параметру :status нужно установить значение : moved_permanently. Так переопределяется код статуса по умолчанию 302 и изменяется на Moved Permanently:

class WelcomeController

def index

redirect_to ‘http://new-website.com’, :status => :moved_permanently

    end

end

В Rails 4 можно добавить redirect в routes.rb файл, автоматически отправляющий ответ 301:

get “/blog” => redirect(“http://new-website.com”)

Если нужно перенаправить все статьи на новый сайт, можно сделать так:

 get “/blog/:post” => redirect(“http://new-website.com/blog/%{post}”)

Редирект .htaccess: постоянное перенаправление, 301

Подобная штука имеет разные названия. Непонятки может вызвать разве что число — почему же 301? Суть кроется в самом протоколе HTTP, который на запросы клиента отвечает определённым кодом состояния. Код 404 Not Found (Страница не найдена) известен почти всем. Код 200 OK почти не известен, но именно он означает, что всё в порядке и документ будет показан в браузере. А вот код 301 Moved Permanently означает, что документ окончательно перебрался на новый адрес. Именно его и называют чаще всего перенаправлением, хотя общий пул ответов обозначен как — 3xx: Redirection.

У Apache есть несколько возможностей для осуществления редиректов. Модуль mod_rewrite предоставляет отличный механизм работы с перенаправлениями, и в дальнейшем я буду использовать в примерах именно его. В модуле mod_alias тоже имеются директивы для редиректов с определённого адреса или с адреса, который соответствует регулярному выражению:
Но в mod_rewrite имеются дополнительные возможности для переадресации, поэтому лучше применять (IMHO) его.

В общем случае, для безусловного внешнего (назовём его пользовательским) редиректа, при котором браузер автоматически переадресовывается на другую страницу, обычно незаметно для пользователя (изменяется адресная строка), можно в .htaccess поместить такой код:
Здесь, первая строка включает механизм модуля mod_rewrite, который позволяется вытворять с адресами всё, что угодно. Назовём это преобразованием URL по условиям на лету. Вторая строка определяет непосредственно правило для преобразования, в примере выше все запросы редиректятся на http://newsite.ru/. В квадратных скобках размещаются флаги: L — последнее (Last) правило, R — тип перенаправления (Redirect), указывается в виде R=code, где code — буквенное или числовое обозначение (permanent или 302).

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

https://a-panov.ru/2014/11/free-cms/

Взглянув на этот URL, сразу видно, что статья опубликована в ноябре 2014. Убрав название с заключающим слешем — https://a-panov.ru/2014/11/ — получим список всех публикация за ноябрь. Обычные адреса, вида:

https://a-panov.ru/?p=389

особой дружелюбностью не отличаются. Увидев такой адрес, нельзя сказать о странице, на которую он ведёт, решительно ничего.

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

Для этого используйте такой код:
Новый флаг QSA сохранит так же и параметры, которые можно встретить в адресах после знака вопроса. В уже знакомом примере:

https://a-panov.ru/?p=389

если я размещу в .htaccess код выше, то произойдёт перенаправление на адрес http://newsite.ru/?p=389 чего без данного флага не было бы.

Здесь и дальше я буду опускать директиву включения преобразований:
просто помните: если вы пользуетесь механизмом mod_rewrite, то все условия/преобразования должны выполняться после данной директивы. Для отключения используется такая строка:
соответственно, для каждого правила нет нужды постоянно «включать» преобразования — это начинает делаться автоматически, сразу после первой директивы.

Зачем это может понадобиться?

Это требуется очень часто, вот, например:

  • вы переносите свой ресурс на более удачный домен (с serdrfnjgkdr.ru на bestsite.ru);
  • если вы решили поспекулировать и выгодно продать свой адрес, а сами – зарегистрировать другой проект и сделать на него редирект;
  • если вы, следуя моему совету, зарегистрировали еще парочку доменных имен, на случай, если юзеры допустят ошибку в строке (yoursite.com, your-site.com, yours1te.com и т.д.).

Кроме того, если у вас есть заработанный непосильным трудом PR и ТИЦ, то их тоже хотелось бы перевести на новый интернет-портал. Ведь не терять же такие важные показатели (они, между прочим, при монетизации принесут много денег).

Также, это сделать нужно при открытии двух ресурсов: например, www_yoursite.ru и yoursite.ru. Поисковые алгоритмы воспринимают эти два домена как разные порталы, поэтому поставить переадресацию с одного на другой просто необходимо (например, с www***/blog на ***.ru/blog). Иначе ТИЦ и PR будут зарабатываться на каждом домене отдельно, да и статистика также будет вестись порознь. Вот так глупая формальность может принести двойную работу и поделить надвое ваши успехи.

Решение

Оно очень простое: открываем файл .htaccess в корневой папке на старом портале, если такого документа нет, то создаем его. Если хотим направить с ввв. домена на основной ресурс, то прописываем в файле такие строки.

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

Не забудьте вместо http://www.% вставить имя вашего нового портала.

Таким образом мы решили проблему перенаправления домена без www  на домен с www.

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

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

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

Adblock
detector