Как сделать редирект

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

страницы, с которой нужно перенаправить пользователей. На сайтах под управлением WordPress это можно сделать с помощью бесплатного плагина Per page add to head.

Сохраните изменения на странице и проверьте, как работает редирект.

HTML-редирект

Этот тип перенаправления также работает на стороне браузера. Чтобы перенаправление сработало, обозреватель должен загрузить соответствующий HTML-код: метатег refresh. Поэтому этот тип редиректов работает медленнее перенаправлений на уровне сервера.

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

Сохраните изменения и проверьте, как работает перенаправление.

Промежуточный итог: предпочитайте серверные редиректы, так как они удобнее для пользователей. В большинстве случаев перенаправление лучше настраивать через конфигурационный файл .htaccess для серверов на Apache и nginx.config для серверов на Nginx.

Где взять код редиректа

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

  • 301 Redirect Code Generator. Генерирует код редиректа для Apache, ASP и ASP.NET. Также создает код JavaScript и HTML-перенаправлений.
  • Seomagnifier. Создает код редиректа 301 с домена с www на домен без www и наоборот.
  • 301 Redirect Code Generator Tool. Создает редиректы со страницы на страницу, а также с домена без www на домен с www. Генерирует PHP-код, перенаправления для серверов на ASP и ASP.NET, HTML- и JavaScript-перенаправления.
  • Генератор файла .htaccess. Создает код редиректов со страницы на страницу, а также между разделами сайта, генерирует скрипты перенаправлений с домена с www на домен без www.
  • Универсальный генератор кода перенаправлений для .htaccess. Можно выбрать сценарий редиректа, указать URL и сгенерировать код.
  • Генератор редиректов 301. Создает код перенаправлений для серверов на Apache, ASP, ASP.NET, а также код HTML- и JavaScript-редиректов.
  • Генератор перенаправлений от Brontobytes. Поможет настроить редирект со старого домена на новый, изменить адрес отдельных страниц и разделов ресурса, настроить перенаправление с домена без www на домен с www.
  • Пользователям серверов на Nginx будет полезен конвертер кода. Он трансформирует редиректы для .htaccess в перенаправления для nginx.config.

Как делать редиректы: популярные примеры

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

Как сделать редирект с http на https

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

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

Корректно перевести сайт на безопасный протокол помогут следующие ресурсы:

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

Подробную инструкцию по перенаправлению с домена без www на домен без www через файл .htaccess читайте в статье о зеркалах сайтов. Если хотите, выполните этот же редирект с помощью php. Действуйте так:

  1. Загрузите на жесткий диск файл index.php.
  2. Сгенерируйте код редиректа.
  3. Вставьте код в файл, сохраните изменения и загрузите index.php на сервер.
  4. Укажите основной URL в настройках сайта. В WordPress это можно сделать в меню «Настройки – Общие».

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

Проверьте, как работает перенаправление. На иллюстрации ниже видно, что до настройки редиректа сайт был доступен по двум URL. После изменения файла index.php ресурс доступен по одному адресу.

Как настроить перенаправление с одной страницы

Чтобы настроить редирект с одной страницы на другую, отредактируйте файл .htaccess или index.php: добавьте в него сгенерированный код редиректа. Если сайт работает на WordPress, воспользуйтесь для настройки редиректов плагинами:

Перенаправления можно настраивать через панель управления сервером. В cPanel настройки доступны в разделе «Домены – Перенаправления». Инструкцию смотрите в статье о зеркалах сайтов.

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

При переезде на новый домен перенаправление настраивается так же, как редиректы с http на https или с домена с www на домен без www. Изменения можно внести через файл .htaccess или index.php.

Сгенерируйте код постраничного редиректа. Для этого укажите URL старого и нового домена и отметьте флажками опции, указанные на иллюстрации.

Добавьте код в файл .htaccess и сохраните изменения.

Как сделать редирект папки

Редирект папки (каталога, директории) можно настроить с помощью файлов .htaccess или index.php. Настройка перенаправлений может понадобиться, если в URL страниц отображаются названия директорий.

Например, в блоге о книгах URL может выглядеть так: https://exampleblog.ru/klassica/idiot. Автор создает отдельный каталог для русской классики и хочет, чтобы URL выглядел так: https://exampleblog.ru/russkaya-klassica/idiot. В .htaccess нужно добавить такой код:

RedirectMatch 301 ^/klassica/(.*)$ /russkaya-klassica/$1

Частные случаи: редирект слэша и редирект расширения

Одни владельцы сайтов предпочитают URL со слэшем в конце, а другие без слэша: https://exampleblog.ru/page/ и https://exampleblog.ru/page соответственно. Поисковые системы считают варианты со слэшем и без него разными URL. Поэтому важно выбрать предпочтительную структуру сетевых адресов и настроить перенаправления.

Сгенерируйте код редиректа и добавьте его в файл .htaccess. Убедитесь, что отметили галочкой нужную опцию.

Чтобы настроить перенаправления с адреса с расширением на адрес без расширения, сгенерируйте код и добавьте его в конфигурационный файл. Редирект с URL с расширением .html на URL с расширением .php выглядит так:

RewriteEngine on

Обратите внимание

RewriteRule index.html index.php [NC,R]

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

Как проверить редирект

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

  • Чекер PrCy.
  • Redirect Checker.
  • Redirect Check.

Чекеры показывают вид редиректа и статус ответа сервера при переходе на новый адрес.

Сделать редирект просто

Для этого в первую очередь выберите вид редиректа. В большинстве случаев подходит перенаправление 301 или постоянный редирект. Иногда для временного перенаправления стоит использовать редирект 303 и 307.

Затем выберите тип редиректа. Быстрее всего работают серверные редиректы, которые настраиваются с помощью конфигурационных файлов .htaccess для серверов Apache и nginx.config для серверов Nginx. Также можно настроить PHP-редирект с помощью файла index.php. JavaScript- и HTML-редиректы работают медленнее, поэтому используйте их в исключительных случаях.

Сгенерируйте код редиректа с помощью одного из предложенных в статье сервисов и добавьте его в конфигурационный файл или в файл index.php. Проверьте корректность редиректа вручную или с помощью веб-сервиса.

kak-sdelat-redirekt-podrobnyy-obzor-dlya-gumanitariev

Источник: https://TexTerra.ru/blog/kak-sdelat-redirekt-podrobnyy-obzor-dlya-gumanitariev.html

Как сделать редирект. Все виды

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

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

Редирект через htaccess — самый популярный, и довольно простой способ. Чтобы его сделать, вам понадобится создать в папке сайта файл с названием .htaccess (обратите внимание, что название файла начинается с точки, это не опечатка).

Если вы используете CMS WordPress или Joomla, то скорее всего этот файл у вас уже есть, в этом случае вам нужно будет просто отредактировать его.

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

Редирект при помощи PHP — подойдет в том случае, если вы разбираетесь в PHP и знаете структуру своего сайта. Этот вариант подойдет вам, если ваш сайт написан не на CMS. В ином случае лучше используйте редирект через htaccess.

Редирект HTML — если у вас простой HTML сайт и вам нужно сделать перенаправление для одной страницы — это самый простой вариант. Сделать перенаправление для всего сайта этим способом будет трудозатратно, особенно если у вас на сайте больше 10 страниц.

Редирект при помощи JavaScript — этот способ подойдет также в том случае, если у вас простой сайт, либо если нужно сделать редирект для одной — двух страниц, либо для всего сайта в целом.

Редирект при помощи .htaccess файла

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

  1. Редирект всего сайта (всех страниц) на другой сайт

    Redirect / http://new-site.ru/

    В этом примере, перенаправление будет происходить на сайт new-site.ru

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

    Redirect /page-1.html /page-2.html

    В этом примере, перенаправление будет происходить со страницы page-1.html на страницу page-2.html. Обе страницы должны располагаться на одном домене.
    Этот вариант подходит для замены старых страниц сайта на новые.

  3. 310 редирект с www на без wwwRewriteEngine on RewriteCond %{HTTP_HOST} ^www.example.ru [NC] RewriteRule ^(.*)$ http://example.ru/$1 [R=301,L]В этом примере, посетители будут перенаправляться с http://www.example.ru на http://example.ru.

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

    Redirect 301 /blog/page-1.html http://example.com/page-2.htm

    В этом примере, посетители будут перенаправляться со страницы blog/page-1.html на example.com/page-2.htm.

  5. Редирект ошибки 404

    ErrorDocument 404 /index.html

    Пропишите эту строку в .htaccess файле, и тогда все посетители, которым встретится ошибка 404, будут перенаправлены на index.html.

  6. Редирект с HTTP на HTTPSRewriteEngine On RewriteCond %{HTTPS} off

    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

    Пропишите эту строку в .htaccess файле, и тогда все посетители вошедшие на сайт по протоколу HTTP будут перенаправляться на защищенный протокол HTTPS.

    Если вы прописываете редирект для WordPress, то обратите внимание на то, что в файле уже есть строка RewriteEngine On. Поэтому сразу под ней вам нужно добавить такие строки

    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://www.domain.com/$1 [R,L]

PHP редирект

В PHP редирект делается так: сервер отправляет заголовки headers браузеру посетителя, и тот переходит по нужному адресу автоматически.
Стоит отметить важный момент, отправлять заголовки можно только до вывода другой информации. То есть они должны отправляться до вывода любой другой информации через echo и до отправки кук.

  1. Редирект на другой сайтВ этом примере, перенаправление будет происходить на сайт http://example.com
  2. Редирект на страницу другого сайтаЗдесь перенаправление будет происходить на http://example.com/page.html
  3. Редирект определенной страницы на страницу другого сайта

    Здесь если посетитель сайта зайдет на страницу blog/post-1.html то он будет перенаправлен на http://example.com/page.html

HTML редирект

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

  1. Редирект на другой сайтВ этом примере, перенаправление будет происходить на сайт https://yutex.ru с задержкой в 5 секунд.

    Если установить значение задержки вместо 5 в 0, то посетитель будет перенаправляться на другой сайт моментально.

  2. Редирект на страницу другого сайтаЗдесь перенаправление будет происходить на https://yutex.ru/index.html и без задержек.

JavaScript редирект

Этот вид перенаправления удобен тем, что его код можно прописать в одном файле (в отличие от html метода), и этот файл вставить на каждой странице прописав

  1. Редирект на другой сайт

    Перенаправление сработает на сайт yandex.ru.

  2. Редирект на другой сайт с задержкой

    Этот код делает то же самое что и предыдущий, но с задержкой в 5 секунд.

  3. Вариант для jQuery

    Замените example.com на свой домен, на который нужно перенаправить посетителя.

Источник: https://yutex.ru/redirect/kak-sdelat-redirect-vse-vidi.html

Как сделать редирект URL-адреса

Хотите перенаправить URL-адрес из одного места в другое? В этом простом руководстве мы покажем, как можно это сделать с помощью Apache / .htaccess, PHP, JavaScript, HTML и т. д. Каждый метод редиректа HTML мы кратко поясним и продемонстрируем готовые к использованию примеры.

Редирект URL-адресов с помощью PHP

Редирект с помощью PHP выполняется с помощью функции header(), например:

Эта функция должна быть вызвана в начале веб-страницы до вывода HTML-кода. Чтобы узнать больше о настройке этого метода, ознакомьтесь с документацией PHP.

Чтобы выполнить редирект с помощью PHP через определенное время:

Редирект на example.com выполняется через 5 секунд. Вы можете изменить это значение на необходимое.

Редирект URL-адресов с помощью JavaScript

Вот самый простой способ index html редиректа с помощью JavaScript:

Редирект URL-адресов с помощью HTML

Можно перенаправить пользователя на новый URL-адрес, используя старый добрый HTML. Вот пример:

Это называется meta-refresh редирект. Можно задать время (в секундах), изменив 10 на необходимое число. Обратите внимание, что этим методом редиректа часто злоупотребляют спамеры. Поэтому будьте осторожны, если вы реализуете его на общедоступном сайте.

В таких случаях рекомендуется задать интервал редиректа более 8 секунд, чтобы предотвратить любые возможные наказания от поисковых систем.

Редирект URL-адресов с помощью Perl

Вот два способа редиректа URL-адресов с помощью Perl:

#!/usr/bin/perl print «Location: http://example.comnn»; exit;

Редирект URL-адресов с помощью ASP (VB Script)

Чтобы перенаправить URL-адрес с помощью ASP, добавьте следующий код:

Редирект URL-адресов с помощью mod_alias Apache

Самый простой способ перенаправления на серверах Apache:

Redirect 301 /old-location.html http://example.com/new-location/

Перед тем, как сделать редирект HTML, этот код нужно добавить в файл .htaccess или файл конфигурации сервера Apache. Вот синтаксис этого метода:

[Директива] [Код состояния] [Старый URL] [Новый URL]

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

http://example.com/old-directory/file-01.html http://example.com/old-directory/file-02.html http://example.com/old-directory/file-03.html . . .

Можно использовать RedirectMatch вместо Redirect:

RedirectMatch 301 /old-directory/file-(.*).html http://example.com/new-directory/file-$1.html

Также можно изменить код статуса с 301 (постоянный редирект) на 302 (временный редирект). Или на любой другой действительный код состояния. Ниже приведено руководство по регулярным выражениям, используемым в методе RedirectMatch:

  • (.*) — соответствует любому символу (или отсутствию символа);
  • . — буквально соответствует точке;
  • $1 — возвращает шаблон, сопоставляемый первым (.*).

Редирект URL-адресов с помощью mod_rewrite Apache

Более функциональный способ редиректа с помощью Apache — использовать его переписывающий модуль mod_rewrite. Вот несколько примеров, которые можно добавить в .htaccess или в файл конфигурации Apache.

Пример 1: Редирект с www на без www

Этот код редиректа HTML перенаправляет все www-версии URL-адресов на их эквивалентные версии без www.

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

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

  • ^ — обозначает начало запрошенного URI;
  • . — буквально соответствует точке;
  • $ — обозначает конец запрошенного URI;
  • [NC] — делает шаблон нечувствительным к регистру;
  • (.*) — соответствует любому символу (или отсутствию символов);
  • $1 — соответствует шаблону из круглых скобок (.*) в RewriteRule;
  • [R=301,L] — отправляет код состояния 301 и инструктирует Apache прекратить обработку набора правил.

Пример 2: Редирект всего домена

Чтобы осуществить редирект HTML с текущего домена на новый:

RewriteRule ^/(.*) https://new-domain.tld/$1 [R=301,L]

Аналогично можно перенаправить запросы из поддомена текущего сайта на поддомен на новом сайте:

RewriteCond %{HTTP_HOST} (.*).old-domain.tld [NC] RewriteRule ^/(.*) https://%1.new-domain.tld/$1 [R=301,L]

Вот несколько примечаний о регулярном выражении, используемом в этом примере:

  • ^ — обозначает начало запрошенного URI;
  • (.*) — соответствует любому символу (или отсутствию символов);
  • $1 — соответствует шаблону из круглых скобок (.*) в RewriteRule;
  • %1 — соответствует первому шаблону из круглых скобок (.*) в RewriteCond
  • [R=301,L] — отправляет код состояния 301 и инструктирует Apache прекратить обработку набора правил.

Обратите внимание: чтобы любой из этих методов работал корректно, оба домена должны иметь одинаковую структуру файлов. Папки и ресурсы на текущем домене также должны существовать и на новом домене. В противном случае вы получите на новом домене кучу ошибок 404.

Пример 3: Перенаправление всех файлов HTML и PHP

Вот еще один, более сложный пример скрипта редиректа HTML mod_rewrite:

RewriteCond %{REQUEST_URI} ^/old-directory/(.*).(html|php)$ [NC] RewriteRule (.*) http://example.com/new-directory/%1.%2 [R=301,L]

Мы перенаправляем все запросы к любым файлам HTML или PHP, расположенным в папке /old-directory/. Все соответствующие запросы перенаправляются в тот же файл, который находится в /new-directory/. Вот несколько примечаний о регулярном выражении, используемом в этом примере:

  • ^ — обозначает начало запрошенного URI;
  • (.*) — соответствует любому символу (или отсутствию символов);
  • . — буквально соответствует точке;
  • (html php) — соответствует либо html, либо php;
  • [NC] — делает шаблон нечувствительным к регистру;
  • %1 — соответствует первому шаблону из круглых скобок (. *) в RewriteCond;
  • %2 — соответствует второму шаблону из круглых скобок (html|php) в RewriteCond;
  • [R=301,L] — отправляет код состояния 301 и инструктирует Apache прекратить обработку набора правил.

Редирект ошибки 404 с помощью Apache

Вот удобный код редиректа html HTML всех ошибок 404 «Not Found» на определенный URL.

ErrorDocument 404 http://example.com/wherever/

Просто измените URL-адрес на нужный и добавьте код в файл .htaccess в корневой папке вашего сайта или добавьте его в файл конфигурации Apache.

Перевод статьи «How to Redirect URLs» дружной командой проекта Сайтостроение от А до Я.

Источник: https://www.internet-technologies.ru/articles/kak-sdelat-redirekt-url-adresa.html

301 редирект (переадресация) через .htaccess – на все случаи жизни

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

Советы

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

RewriteCond %{REQUEST_URI} !? RewriteCond %{REQUEST_URI} !& RewriteCond %{REQUEST_URI} != RewriteCond %{REQUEST_URI} !. RewriteCond %{REQUEST_URI} ![^/]$ RewriteRule ^(.

*)/$ /$1 [R=301,L]

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

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

RewriteCond %{REQUEST_URI} !? RewriteCond %{REQUEST_URI} !& RewriteCond %{REQUEST_URI} != RewriteCond %{REQUEST_URI} !. RewriteCond %{REQUEST_URI} !/$ RewriteRule ^(.

*[^/])$ /$1/ [R=301,L]

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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]

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 и со слешем на конце адреса страницы

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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]

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 и без слеша на конце адреса страницы

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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]

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 и без слеша на конце адреса страницы

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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]

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

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

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

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

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

12. 301 редирект для index.php, index.html или index.htm (например в Joomla), массовая склейка

1
2
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.(php|html|htm) HTTP/ RewriteRule ^(.*)index.(php|html|htm)$ http://site.ru/$1 [R=301,L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9} /index.(php|html|htm) HTTP/ RewriteRule ^(.*)index.(php|html|htm)$ http://site.ru/$1 [R=301,L]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обратный редирект, если перестали использовать SSL сертификат.

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

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

UPDATE 02/11/2016

Источник: https://web-optimizator.com/301-redirekt-htaccess/

301 редирект: как сделать переадрессацию на сайте?

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

Что такое 301 редирект и зачем он нужен?

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

С точки зрения поисковой оптимизации, 301 Moved Permanently — это постоянный редирект, который помогает переместить до 99% ссылочного веса на новый URL, а старый «пометить» в качестве устаревшего.

То есть благодаря этому удастся сохранить позиции в поисковых системах, а если просто изменить адрес URL, не делаля редирект, то для Яндекса и Гугла это будет новой страницей, которая будет ранжироваться без связки с предыдущей историей.

Есть несколько вариантов, когда нужно воспользоваться этим редиректом:

  • при совершении склейки доменов;
  • для переезда сайта на новый адрес, например, в случае снижения трафика вследствие попадания вашего ресурса под фильтры поисковиков. 301 редирект не позволит тем, кто добавил ваш сайт в закладки, потерять его из виду;
  • чтобы увеличить показатели тИЦ, PR, трафик из ПС на основном сайте. В этом случае понадобится приобрести домен, который обладает неплохими показателями и настроить редирект на тот ресурс, который нуждается в улучшении данных параметров;
  • при смене адреса конкретной страницы для сохранения высоких позиций в ПС (например, это может быть актуально при переезде сайта из одной CMS в другую);
  • при переходе на протокол https;
  •  и др.

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

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

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

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

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

Redirect 301 / http://site.ru

А если нужно организовать перенаправление со страницы на страницу сайта, то понадобится вот такой код:

Redirect 301 /старая-страница.html http://новый-домен.ru/новая-страница.html

или

RedirectPermanent /старая-страница. html http://новый-домен.ru/новая-страница.html

Как склеить домен с www с вариантом без?

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

При склеивании доменов объединяются все их самые важные параметры, такие как тИЦ, PR и посещалка.

К тому же это поможет оптимизировать ресурс, и избежать ситуации, когда ПС отражение сайта с www принимают за «самозванца» с «ворованным» контентом.

Код для склеивания домена с использованием www на домен без www выглядит так:

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

Важно

При этом значение RewriteEngine on/off является специализированной директивой, служащей для подключения либо прекращения доступа к коду самого файла. А доступ происходит посредством модуля mod_rewrite.

RewriteCond — директива, используемая для формирования условий по правилам преобразования. А RewriteRule — предписание, отвечающее за производимые преобразования, в конкретной ситуации — редирект 301.

301 редирект при переезде на HTTPS

Современный тренд — перенос сайтов на защищенный протокол HTTPS. При этом настройка переадресации со страниц с HTTP на HTTPS является ключевым этапом. Делается это следующим образом в файле .htaccess.

RewriteCond %{SERVER_PORT} !^443$ 
RewriteRule ^(.*)$ https://site.ru/$1 [R=301,L]

Примечания и ошибки

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

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

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

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

Ошибкой будет настройка редиректа на некорректно работающую страницу (страница должна быть с 200 или 404 ответом сервера). И, наконец, неверным будет редирект файла robots.txt.

Другие виды редиректов

Опытные вебмастеры помимо самого популярного 301 редиректа используют и некоторые другие: от 300-го по 307-й. К примеру, 302 и 307 — это временный редирект, 305 — доступ исключительно посредством прокси и т. д. Также довольно востребованным типом редиректов можно назвать Meta Refresh.

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

К тому же применение этого редиректа практически не дает возможности для передачи ссылочного веса.

Источник: https://www.seostop.ru/prodvizhenie-sajta/301-redirekt.html

Как сделать редирект: обзор способов — UMI

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

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

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

Популярные способы перенаправления

Давайте рассмотрим подробнее каждый вариант, чтобы подобрать самый подходящий и доступный.

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

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

Обратите внимание: на каждом конструкторе это делается разными способами. Например, с 1С-UMI у вас получится все очень быстро, не нужно разбираться с кодом и макросами.

Используйте специальный встроенный функционал для решения задачи: просто укажите 2 адреса: откуда перенаправлять и куда перенаправлять. Вот инструкция.

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

Подразумевает под собой перенаправление на безопасный протокол https вместо http. Для этого необходимо купить SSL-сертификат, он подключается к доменам второго уровня. На 1С-UMI они идут в подарок, если вы оплачиваете сайт минимум на три месяца. Алгоритм действий дальше (на примере 1С-UMI):

  • Выбрать «Покупка SSL-сертификата«(вкладка «Домены» на панели управления).
  • Кликнуть на «Купить» рядом с нужным сертификатом.
  • Оплатить покупку.
  • Зарегистрировать электронную почту, чтобы подтвердить операцию. Сделать это можно в разделе «Почта для домена».
  • Заполнить форму, которая появится в окне «Покупка SSL-сертификата». Важно: информация вводится на транслите, будьте внимательны.
  • Подтвердить действие, перейдя по ссылке из письма. Оно будет отправлено на ваш ящик.
  • Для дальнейших манипуляций пользуйтесь разделом «Управление SSL-сертификатом».

Как сделать редирект без www на www

На конструкторе 1С-UMI это очень легко (работает для доменов 2 уровня). Зайдите в панель управления — во вкладку «Домены — привязка домена», снимите галочку «www».

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

Как сделать редирект со страницы на страницу при помощи файла .htaccess

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

  • для замены старых страниц при условии расположения на одном домене:
  • для 310 редиректа:
  • для 404 ошибки:

Как сделать редирект на другой домен

Переадресация веб-сайта со старого домена на новый — актуальный вопрос.

На конструкторе 1С-UMI это также очень легко. Если старые домены привязаны к сервису, то просто зайдите во вкладку «Привязка домена» в панели управления сайтом и поставьте галочку напротив того домена, который должен быть основным. Со всех остальных доменов будет осуществляться переадресация на основной.

На своем хостинге (если сайт работает на CMS) переадресация выполняется двумя путями:

  1. Через файловые вложения .htaccess

    • С www на основной. Если на своей площадке вы используете активированный модуль mod_rewrite, то в корневой папке просто пропишите представленный скрипт:
    • С основного на www.
    • С одного на другой. Для этого используйте автоматическую директиву, которая отображена в документе. На старом адресе создайте файл со следующим содержанием:
    • Переадресация с нескольких доменов.

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

  2. Переадресация на примере cPanel.

    Отличается наличием двух типов:

    • 301 — стандартный, или постоянный. Поисковые машины получат уведомление о том, что веб-страница «переехала». Таким образом, вы сохраните поисковый трафик.
    • 302 — временный, поэтому лучше не задерживаться, так как вы рискуете значительно потерять существующие позиции.

    Как сделать редирект домена кириллического формата? Алгоритм не отличается от обычного. Достаточно воспользоваться конвертером. Распространенный пример — Punycode. Символы имени будут переформатированы по кодировке ASCII. Например, http://садогород.укр/ может стать http://xa—755arlkjctj.xn—j1nyh/. Результат вводится в кодовое поле.

Как сделать редирект страницы с помощью метатега refresh

Наиболее доступный способ «переезда» в HTML. Метатег размещается в зависимости от конфигурации интернет-страницы. Это может быть верхняя или нижняя часть. Пример:

Совет

Обратите внимание, что content — атрибут, который отвечает за задержку. Обязательно выставьте для него параметр в 0 секунд. Проверьте открытие и закрытие кавычек. В HTML-разметке это обязательно.

Представленный способ имеет недостаток. Большинство браузеров негативно реагируют на ввод такого тега. Чтобы не возникло трудностей и дополнительных вопросов, как сделать редирект сайта и отдельных его страничек, логичнее использовать JavaScript. Для этого необходимо переписать только содержимое, которое отображается в window.location. Проблемы, которые иногда возникают:

  • Загрузка не может выполняться, если JavaScript полностью не включен.
  • Не все поисковые системы на это адекватно реагируют.
  • Информация о переносе не подкреплена кодовой привязкой.

Как сделать редирект ссылки

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

К каждой внешней ссылке, которую вы планируете переформатировать, припишите такой скрипт: http://вашедоменноеимя.ru/go.php?site=…

Например: если ваш сайт имеет домен http://my.ru, а нужно переформатировать во внутреннюю ссылку https://yandex.ru/ , то ссылка прописывается так: http://my.ru/go.php?site=https://yandex.ru/

Источник: https://Umi.ru/blog/kak-sdelat-redirekt/

Как сделать редирект (html,php,apache,nginx)

Всем привет! В этой статье хочу наглядно показать как можно сделать редирект ваших пользователей используя для этого PHP, Apache или Nginx.

Для начала стоит пару слов уделить определению того что такое редирект.
Редирект – это автоматическое (принудительное) перенаправление посетителей сайта с одной страницы на другую. Для того чтобы при перенаправлении пользователя он понимал куда и почему его перенаправили то нужно указывать состояние для веб страницы. О состоянии страницы говорит код статуса HTTP.

Нас интересуют следующие статус-коды редиректов:

  • 300 — Multiple Choices (несколько вариантов на выбор давая возможность сделать выбор пользователю).
  • 301 — Moved Permanently (запрошенный документ перемещен на новый URI).
  • 302 — Moved Temporarily (временный редирект по другому URI).
  • 303 — See Other (затребованный ресурс можно найти по другому адресу).
  • 304 — Not Modified (содержимое не изменялось — это могут быть рисунки, таблицы стилей и т.п.).
  • 305 — Use Proxy (доступ должен осуществляться через прокси-сервер).
  • 306 — Unused (не используется, зарезервирован).

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

Атрибут «content» – это задержка перед тем, как браузер перенаправляет на новую страницу, наше значение 0 секунд. Обратите внимание, что мы не должны устанавливать HTTP-код, но важно дважды проверить странное открытие и закрытие кавычек.

Функция header () принимает 3 параметра.

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

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

Все изменения производятся в файле .htaccess.

Для работы перенаправления а apache должен быть включен модуль mod_rewrite.

Options +FollowSymLinks
RewriteEngine On
RewriteBase /

Стандартный редирект:

Redirect 301 /page1.html http://www.dmkweb.ru/page2.html

Редирект при смене расширения файлов:

Если вы сменили платформу или CMS и при этом у url-ов изменились только расширение, вам может помочь этот редирект.

RedirectMatch 301 (.*).php$ https://www.dmkweb.ru $1.html

Редирект с www на обычный домен:

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

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

Благодаря этому все запросы на www.dmkweb.ru будут перенаправлены на dmkweb.ru.

Удаление лишних символов в url-е

Иногда в url-е могут появится ненужные элементы, в этом случаи поможет редирект 301:

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

Было: dmkweb.ru/php///page-1.html

Стало: dmkweb.ru/php/page-1.html

Так же, можно возникнуть потребность заменить в url-е несколько дефисов на один:

RewriteCond %{REQUEST_URI} ^(.*)—(.*)$
RewriteRule . %1-%2 [R=301,L]

Было: dmkweb.ru/php/page—1.html

Стало: dmkweb.ru/php/page-1.html

Про редирект с http протокола на https я упоминал в своей недавней статье.

Обратите внимание

Перенаправлить пользователя с одного url на другой в nginx ещё проще чем на apache.

rewrite ^ http://newsite.ru$request_uri? permanent;

301 редирект с www на обычный домен

server { listen 80; server_name mysite.ru;
}
server { listen 80; server_name www.mysite.ru; return 301 http://mysite.ru$request_uri;
}

Про редирект с http на https для nginx я так же уже писал.

dmkweb.ru Права на контент защищены.

Источник: https://dmkweb.ru/kak-sdelat-redirekt-htmlphpapachenginx.html

Ссылка на основную публикацию