Сайт

Переадресация сайта – Как сделать редирект. Все способы

11.12.2017

Содержание

Как настроить переадресацию на домен БЕЗ «www»?

Через панель управления хостингом

Для входа в панель управления хостингом используйте инструкцию: Как открыть панель управления хостингом?

В случае с ISPmanager мы рекомендуем настраивать переадресацию через файл .htaccess. Ниже описано как это сделать.

  1. 1.

    В разделе «Сайты и домены» кликните «Настройки хостинга» рядом с необходимым доменом:

  2. 2.

    В пункте «Предпочтительный домен» выберите домен без «www»:

    • нажмите Применить внизу страницы для добавления перенаправления.
  1. 1.

    В блоке «Домены»

    кликните Перенаправления:

  2. 2.

    В открывшемся окне выполните следующие настройки:

    • в выпадающем списке выберите необходимый домен; в поле «Перенаправляет на» пропишите ваш домен с префиксом http:// и выберите пункт «Перенаправлять только с www»:

    • нажмите Добавить для добавления перенаправления.

Через файл .htaccess (только на Linux)

Перейдите в корневой каталог вашего сайта и добавьте в файл .htaccess

(точка в начале важна) следующие строки:

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

здесь site.ru — имя вашего домена.

Если файла .htaccess не существует, просто создайте его.

Чтобы настроить редирект с www на без www HTTPS или редирект без www на www HTTPS для всех страниц воспользуйтесь инструкцией: Редирект с http на https для Linux.

Редирект с помощью Nginx

Добавление редиректа с помощью Nginx доступно только на VPS-сервере. Настраивается перенаправление по инструкции. Помогла ли вам статья?

257 раз уже
помогла

www.reg.ru

Редирект 301 в htaccess, как настроить правильную переадресацию или 301 redirect

Редирект 301 или 301 Permanent Redirect — это правило, которое автоматически переадресовывает пользователя на другой адрес страницы. С его помощью вы можете склеить старые страницы с новыми или перенести сайт на другой домен, убрать многие дубли с сайта и многое другое. Крайне полезная вещь — поэтому нужно научиться делать его правильно!

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

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

Файл под названием .htaccess находится в главной категории вашего сайта. Это служебный файл, в котором мы будем указывать правила склейки. Открываем файл блокнотом (рекомендую notepad++, чтобы не было проблем с кодировкой). Не забывайте, что это один из важных пунктов в работе SEO специалиста.

Общий шаблон для .htaccess, которым мы будем пользоваться:

Options +FollowSymLinks
  RewriteEngine On
  #Здесь указываем правила

Все правила записываются в виде:

RewriteCond [Сравнение] [Условие] [Флаги]
RewriteCond [Сравнение] [Условие] [Флаги]
RewriteRule [Шаблон] [Подстановка] [Флаги]

Теперь непосредственно займемся переадресацией и разберем конкретные примеры.

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

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

Редирект с index.php на главную

Чтобы настроить его вам нужно прописать в вашем файле следующий код, который будет перенаправлять посетителей с адреса site.ru/index.php на site.ru:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP
RewriteRule ^index\.php$ http://site.ru/ [R=301,L]

Если вам так же нужно сделать переадресацию с index.html, то просто в коде выше замените .php на .html

Склеиваем алиасы сайта

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

RewriteCond %{HTTP_HOST} ^vash-sait.com$ [OR,NC]
RewriteCond %{HTTP_HOST} ^www.vash-sait.com$ [NC]
RewriteCond %{REQUEST_URI} !^/robots.*
RewriteRule ^(.*)$ http://vash-sait.ru/$1 [R=301,L]

Обратите внимание на первые 2 строки, там указано зеркало в зоне .com, если у вас иная или несколько зон, то добавляем правила.

Редирект с www на без www

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

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

Редирект с домена без www на домен с www

Это действие противоположное предыдущему, только основное зеркало здесь www.site.ru:

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

301 редирект страниц со слэшем и без

Это еще один вид дублей, тут мы склеим страницы site.ru/category/ и site.ru/category, как видите, в конце второго урла не стоит слэша:

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

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

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

Если у вас по какой-то причине появились урлы типа site.ru/category//article.html, то юзаем код:

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

где, «//» можно заменить на «—» или любые сдвоенные символы в урле.

Массовая замена категории

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

RewriteRule ^(.*)/old-category/(.*)$ $1/new-category/$2 [R=301,L]

Если у вас категория идет сразу после домена (типа site.ru/category/), то используем другой вариант:

RewriteRule old-category /(.*) / old-category /$1 [R=301,L]

Редирект на новую страницу

Самый простой редирект со страницы на страницу, для это просто пропишите так:

Redirect 301 /old-post.html http://new-site.ru/new-post.html

Где old-post.html — это ваша старая страница, а new-site.ru/new-post.html — это новая страница и она может быть на любом домене (включая ваш текущий домен).

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

Страницы с параметрами редиректятся сложнее, возьмем пример http://site.ru/page.php?sort=articles. Параметр здесь «sort=articles». Код будет следующим:

RewriteCond %{QUERY_STRING} sort=articles
RewriteRule .* http://site.ru/page.php? [R=301,L]

Работаем с расширениями

Убираем .html из url (для удаления .php не забудьте заменить $1.html на $1.php):

RewriteRule ^(([^/]+/)*[^.]+)$ /$1.html [L]

Меняем .php на .html в урлах и наоборот (не забываем поменять местами в коде):

RedirectMatch 301 (.*)\.php$ http://www.site.com$1.html

Правильный 301 редирект на новый домен

Этот пункт я выделил отдельно, т.к. он больше связан с переносом на другой домен. Тут есть важный момент, это не упустить директиву по правке роботса — она указана на 3 строке кода.

RewriteCond %{REQUEST_FILENAME} robots.txt$ [NC]
RewriteRule ^([^/]+) $1 [L]
RewriteCond %{HTTP_HOST} ^site\.ru
RewriteRule ^(.*)$ http://new-site.ru/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.site\.ru
RewriteRule ^(.*)$ http://new-site.ru/$1 [R=301,L]

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

Если у вас появились какие-то вопросы, пишите в комментарии — будем разбираться 🙂

romanus.ru

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

Тематический трафик – альтернативный подход в продвижении бизнеса

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

Подпишись на рассылку и получи книгу в подарок!

Редирект с www на без www – перенаправление пользователя и поисковых систем на главное зеркало сайта, которое не содержит префикса WWW перед именем домена.


Больше видео на нашем канале — изучайте интернет-маркетинг с SEMANTICA

Пример: есть сайт www.site.ru, мы настраиваем переадресацию с него на site.ru. В итоге, когда пользователь будет переходить по первой ссылке, она будет отсылать вас на вторую. То есть, после введения в браузерную строку www.site.ru, при включенном перенаправлении откроется страница site.ru.

Использование на практике

Проблема в том, что для поисковых систем домен с префиксом www – это один сайт , а без – другой.
Такое разделение, безусловно, не идет на пользу позициям в поиске. Причины тому две:

Деление ссылочной массы

Все мы знаем, что от количества внешних ссылок на сайт зависит и степень его трастовости. В целом, внешняя ссылочная масса по-прежнему играет большую роль в ранжировании страниц. При ненастроенном перенаправлении, как уже писалось, поисковые системы распознают www.site.ru и site.ru как два разных. Вы никогда не угадаете, какой вариант будет использовать проставляющий внешние ссылки на ваши страницы человек, и поэтому PR и ТИЦ будет распределяться неравномерно по двум разным доменам. Вот почему редирект с www на без www имеет такое большое значение в SEO продвижении.

Дублирование сайта

Много проблем вебмастерам доставила и ситуация с уникальностью контента. Дело в том, что иногда поисковые системы заходят сначала, допустим, на site.ru, а потом на www.site.ru. Разумеется, на обоих адресах размещен один и тот же контент, и статьи появляются по обоим адресам одновременно. Зайдя сначала на site.ru, а потом проверив вариант с префиксом, поисковый бот решит, что второй сайт просто скопировал контент с первого, и понизит его позиции в поиске.

Что такое редирект 301 с www на без www

Redirect 301 – это постоянное перенаправление с одного URLа на другой. Такой тип переадресации просто пересылает и пользователей, и поисковые машины на другой URL. Помимо данного типа перенаправления существуют еще и временный, но его для перевода пользователя с адреса с www на без www не используют, а значит и рассматривать его в этой статье смысла нет.

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

Есть несколько способов настройки переадресации:

  • Через .htaccess. Для использования этого способа у вас должен быть доступ к файлу .htaccess, который находится в корневом каталоге вашего сайта. Если доступа нет, необходимо обратиться в службу поддержки для его получения. Файл можно загрузить через FTP соединение и затем модифицировать в блокноте. Важное примечание: сохранять файл необходимо в кодировке UNIX.
    Итак, чтобы сделать переадресацию с без www на www, необходимо добавить к уже существующим в файле .htaccess файле строкам новые:
    <IfModule mod_rewrite.c >
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^domain\.com [NC]
    RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]
    < /IfModule >
    Все, что нужно сделать вам – поменять domain.com на свой домен.
    Чтобы сделать редирект с www на без www необходимо прописать другой код:
    <IfModule mod_rewrite.c >
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
    RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
    < /IfModule >
  • Некоторые панели управления предусматривают возможность добавления редиректа через обычный интерфейс. Стоит поискать в разделе «Домены» вашего провайдера. Никогда не стесняйтесь задать вопрос службе поддержки – возможно, именно она поможет вам с проблемой, если она возникла

Также рекомендуется добавить собственные сайты в сервисы для вебмастеров от Google и Yandex. В этих сервисах также можно настроить предпочтения по выводу домена в результаты поиска с/без префиксом.

В обоих сервисах сделать это можно практически одинаково. Сначала необходимо открыть настройки сайта. В Google Webmaster Tools уже на этом этапе настройка заканчивается: в разделе “Site Settings” вы выбираете один из вариантов написания адреса.

В Яндекс Вебмастере же вам нужно будет поискать вкладку «Настройки индексирования» —> «Главное зеркало». Под надписью «Изменить главное зеркало» список с доступными вариантами отображения – выбираете тот, который вам по вкусу.

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

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

Иногда поисковые системы сами производят склейку домена. Но даже в таком случае, лучше все же самостоятельно указать нужный адрес. Слишком уж большое значение правильно определенное зеркало имеет для SEO.

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

После введения вами URL сайта(например, site.ru) и условии успешного выполнения перенаправления, вы увидите примерно следующие строки:

301 редирект (перемещено постоянно) на адрес https://www.site.ru/

Вводить в строку URL нужно именно тот адрес, с которого идет перенаправление.

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

Вам нужно добиться именно этот  результат.

Редирект с www на без www или наоборот: какой вариант лучше

Некоторые люди полагают, что для SEO существует разница между доменом с префиксом и без него. На самом деле, это не так. Разница между двумя вариантами отображения вашего домена заключается лишь во внешнем виде. Многим людям, к слову, кажется, что с префиксом адрес страницы выглядит более привлекательным, а не «голым», как при его отсутствии. Но мы повторим еще раз: выбор в данной ситуации – дело каждого. Главное этот выбор сделать, и настроить переадресацию с www на без www или наоборот.

Надеемся, что эта статья, наконец, показала вам важность перенаправления в SEO и помогла вам в установке оного на собственный сайт. Теперь ваши вопросы насчет написания домена с WWW и без www должны быть решены – оба варианта одинаковы для поисковых машин.

semantica.in

Как сделать мобильный редирект. Все способы

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

Если вы используете WordPress или Joomla, вы можете воспользоваться специализированными плагинами для мобильного редиректа.
Google, рекомендует не использовать мобильный редирект вовсе (имеется ввиду не делать отдельный домен/поддомен для мобильного сайта), а сделать адаптивную верстку сайта.

Редирект при помощи .htaccess файла
  1. Редирект пользователей на мобильную версию сайта

    RewriteEngine On
    # Проверка mime типов, которые обычно поддерживаются мобильными устройствами
    RewriteCond %{HTTP_ACCEPT} «text\/vnd\.wap\.wml|application\/vnd\.wap\.xhtml\+xml» [NC]
    RewriteCond %{REQUEST_URI} ^/$
    RewriteRule ^ http://m.domain.com%{REQUEST_URI} [R,L]

    Замените m.domain.com на домен своего мобильного сайта.
PHP редирект
  1. Редирект на мобильный сайт Используйте для определения мобильного устройства специальную библиотеку Mobile Detect, реализация есть практически для всех фреймворков и CMS (Репозиторий на GitHub)

    <?
    // пример работы библиотеки Mobile Detect require_once ‘Mobile_Detect.php’;
    $detect = new Mobile_Detect;
    if ( $detect->isMobile() ) {// код}
    if ( $detect->isTablet() ) {// код}
    if ( $detect->isiOS() ) {// код}
    if ( $detect->isAndroidOS() ) {// код}
    ?>

    Как видите, можно определять не только мобильное устройство или таблетку/планшет, но и операционную систему.
JavaScript редирект
  1. Перенаправление на мобильную версию

    <script type=»text/javascript»>
    if (screen.width window.location = «http://m.domain.com»;
    }
    </script>

    Замените m.domain.com на адрес своего мобильного сайта. Как видите, мы определяем тип устройства по его разрешению (ширине экрана в данном случае). 480px, это типичное максимальное разрешение для Iphone или Android устройств. Типчные разрешения разных устройств

yutex.ru

Редирект, переадресация или перенаправление

Одна из наиболее частых причин использования файла .htaccess, является потребность в перенаправлении посетителей сайта с одного адреса на другой, обычно это называют 301 редирект. Например был изменен адрес страницы или название каталога, изменилось имя домена и т.д. Эти вопросы легко решаются с помощью .htaccess. Но при этом стоит понимать, что иногда правила переадресации и формирования URL адресов формирует сама CMS (система управления сайтом) и в таком случае не всегда есть возможность решить определенные задачи при помощи .htaccess.

Для редиректа можно использовать директивы Redirect, RedirectMatch и возможности модуля mod_rewrite.
Redirect — это самая простая директива для создания редиректа, если вам просто нужно перенаправить посетителей с одного адреса на другой, этот метод вполне подходит.
RedirectMatch — является более продвинутой директивой для перенаправлений, чем Redirect. В ней можно использовать регулярные выражения и обратные связи.
mod_rewrite — самое мощное средство не только для редиректа, но и для других видов преобразования. Для построения правил с помощью mod_rewrite используются директивы RewriteCond и RewriteRule.

Рассмотрим типичные виды перенаправлений и их решение при помощи указанных выше директив

C одной страницы сайта на другую

Часто бывает так, что был изменен адрес целевой страницы и очень не хочется, что бы посетителям при обращении к старому адресу отдавалась 404 ошибка. 
Redirect 301 /old-url /new-url
RedirectMatch 301 test$ http://some-site/test2
RewriteRule ^old-url$ /new-url [R=301]

C одной страницы сайта на другой сайт

При запросе определенной страницы, пользователя перенаправляет на другой сайт.
Redirect 301 /old-url http://newsite.com/
RedirectMatch 301 test$ http://newsite.com/
RewriteRule ^old-url$ http://newsite.com/ [R=301]

Со всех страниц одного сайта на главную страницу другого сайта

То есть, не зависимо от запрошенного адреса, перенаправление будет производится на главную страницу.

Redirect 301 / http://newsite.com/
RedirectMatch 301 /$ http://newsite.com/
RewriteRule ^(.*)$ http://newsite.com/ [R=301]

Такой вид редиректа не совсем подходит, если мы сменили домен для сайта и хотим перенаправлять посетителей на новый адрес сайта. Нам желательно перенаправлять пользователя на запрошенную им страницу, но на новом домене (http://oldsite.com/test -> http://newsite.com/test).

Со всех адресов одного сайта, на такие же адреса другого сайта

RedirectMatch 301 /(.*)$ http://newsite.com/$1
RewriteRule ^(.*)$ http://newsite.com/$1 [R=301]

Редирект с www на без www (www.some-site.com -> some-site.com)

Частая проблема, сайт доступен по обоим адресам, и с www и без www.
RewriteCond %{HTTP_HOST} ^www.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www.some-site.com.ru$ [NC]
RewriteRule ^(.*)$ http://some-site.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
RewriteRule ^(.*) http://%1/$1 [L,R=301]​

В целом эти три примера практически идентичны, различаются только формой записи

Редирект с без www на www (some-site.com -> www.some-site.com)

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

Редирект с адресов без слеша на адреса на со слешем

Здесь довольно много вариантов решения и очень много зависит непосредственно от сайт и от того, как формируются адреса, все возможные варианты перечислять не будем.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [R=301,L]
Это самый простой пример, сюда можно еще добавить проверку URL адреса на содержание GET параметров, что бы c адреса вида /test?id=1&page=5 не было перенапрвления на /test/?id=1&page=5. И проверку на содержание расширения файла, что бы адреса вида /test.html не превращались в /test.html/.
​RewriteCond %{QUERY_STRING} !.+
RewriteCond %{REQUEST_URI} !.
​%{QUERY_STRING} — эта переменная сервера содержит GET параметры, «.+» — означает, что должен быть как минимум один символ, восклицательный знак указывает на несоответствие шаблону. То есть, если переменная %{QUERY_STRING} не содержит ни одного символа, выполняем правило.
%{REQUEST_URI} — эта переменная содержит запрошенный адрес, «!.» — не должен содержать точку. То есть, если в запросе нет точки, правило выполняем. Можно дополнительно уточнить расширения, если в этом есть необходимость:
RewriteCond %{REQUEST_URI} !.(html|htm|php|txt)
В итоге получаем такое правило:
​RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_URI} !.
RewriteCond %{QUERY_STRING} !.+
RewriteRule ^(.*)$ /$1/ [R=301,L]

​Редирект с адресов со слешем на адреса на без слеша

В целом тут картина примерно та же, что и в предыдущем примере, правило будет выглядеть так:
​​​RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} (.*)/$
RewriteCond %{QUERY_STRING} !.+
RewriteRule ^(.*)/$ /$1 [R=301,L]

Редирект с дублей главной страницы /index.php или /index.html на главное зеркало сайта

Часто CMS создают дули главной страницы сайта, доступные по адресам /index.php или /index.html. Это безусловно плохо влияет на seo оптимизацию сайта. Решается это довольно просто:
RewriteCond %{REQUEST_URI} /index.(php|html|htm)
RewriteRule ^(.*)$ / [R=301,L]
Теперь при запросе http://somesite.com/index.php, http://somesite.com/index.html или http://somesite.com/index.htm будет производится редирект на главную страницу http://somesite.com/. Но здесь не учтен один момент. Некоторые CMS формируют URL адреса с GET параметрами после /index.php (/index.php?option=sometext&view=sometext&Itemid=2
) и если оставить текущее правило, с адреса с GET параметрами будет также производится редирект на главную страницу. Добавляем проверку на GET параметры:
RewriteCond %{REQUEST_URI} /index.(php|html|htm)
RewriteCond %{QUERY_STRING} !.+
RewriteRule ^(.*)$ / [R=301,L]
Теперь редирект с адресов вида 
/index.php?option=sometext&view=sometext&Itemid=2 производится не будет. Но здесь опять не учтен один момент, будут также доступны адреса вида /index.html?option=sometext&view=sometext&Itemid=2 и 
/index.htm?option=sometext&view=sometext&Itemid=2. Конечно не супер страшно, но все же лучше от этого избавится, тем более такая возможность есть. Вариант только один, вместо одного правила, написать два:
RewriteCond %{REQUEST_URI} /index.php
RewriteCond %{QUERY_STRING} !.+
RewriteRule ^(.*)$ / [R=301,L]

RewriteCond %{REQUEST_URI} /index.(html|htm)
RewriteRule ^(.*)$ / [R=301,L]

Редирект с HTTP на HTTPS

Это необходимо делать, при установке SSL сертификата для сайта, что бы все пользователи использовали только защищенное соединения по протоколу HTTPS.
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
Но у меня такой вариант вызывал зацикливание — бесконечный редирект. Опытным путем было выяснено, что не работает условие RewriteCond, по сути оно просто не учитывалось. Это условие должно проверять наличие соединения по HTTPS и если его нет — выполнять директиву RewriteRule, делать редирект на HTTPS. Поэтому я нашел другое решение.
​RewriteCond %{ENV:HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Это решение отлично сработало. Вообще вариантов довольно много, ниже еще несколько.
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

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

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

​RewriteCond %{HTTP:SSL} !1
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L,R=301]

hostgid.net

Переадресация с одного домена на другой (редирект домена)

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

  • сайт открывается по 2 адресам: www.mysite.ua и mysite.ua (для поисковых машин это существенная разница и они воспринимают 2 адреса, как 2 разных сайта), поэтому необходимо сделать чтобы при обращении к страницам сайта с www, шла переадресация на такие же страницы сайт без www, например с http://mysite.ua/news/ на http://www.mysite.ua/news/ (или наоборот).

  • у вас есть несколько доменов, основной mysite.ua и альтернативный my-site.ua и/или кириллический мойсайт.укр. Необходимо, чтобы при наборе в браузере адреса my-site.ua и/или мойсайт.укр посетитель автоматически перенаправился на сайт mysite.ua.

1. Перенаправление домена в файле .htaccess.

1.1. С www-домена на основной домен

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

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

1.2. С основного домена на www-домен

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

1.3. С одного домена на другой

Задача может быть решена так же как и первая, для настройки перенаправления посетителей с одного доменного domain1.ua имени на другое domain2.ua вы можете использовать соответствующие директивы в файле .htaccess.

Сделать на старом домене domain1.ua файл .htaccess, с содержанием:

RewriteEngine On
RewriteCond %{HTTP_HOST} domain1.ua
RewriteRule (.*) http://domain2.ua/$1 [R=301,L]

1.4. Перенаправление с нескольких доменов

Необходимо сделать переадрессацию с доменов domain1.ua и www.domain1.ua на новый домен domain2.ua, для это впишите:

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

Аналогично можно делать перенапрвление с domain.ua на domain.com и т. п.

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

2. Перенаправление домена в панели управления хостингом

На примере панели управления «cPanel»

Вы можете выбрать варианты перенаправления – 301 или 302.

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

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

Также, можно выбрать опции перенаправления, связанные с синонимом сайта с www. Обратите внимание, что переадресацию с домена http://www.site.ua/ на http://site.ua/ средствами cPanel сделать не удастся. Подобный редирект создается с помощью файла .htaccess.

Управление перенаправлением выглядит довольно стандартно. Вы можете удалить созданный параметр:

3. Перенапрвленеи кирилличнский доменов

Переадрессация кириилических доменов ничем не отличается от обычного (на латинице). Просто необходимо использовать конвертер punycode .

Punycode – это метод преобразования символов, относящихся к стандарту Unicode, в последовательность символов, содержащих только символы в кодировке ASCII, а именно 26 букв латинского алфавита (a-z), цифры (0-9) и символ дефиса (всего 37 символов).

Домены, содержащие символы национальных алфавитов называют IDN-доменами. Некоторые сервисы не поддерживают IDN представление доменов. Поэтому не работает домен УКР или другие IDN-домены. В таком случае необходимо использовать имя домена после Punycode-конвертации.

Например, домен http://мойсайт.укр/ после кодирования (можно воспользоваться сервисом http://wwhois.ru/punycode.php) становится http://xn--80arbjktj.xn--j1amh/ , его-то мы и вписываем в уже знакомый код

RewriteEngine On
RewriteCond %{HTTP_HOST} http://xn--80arbjktj.xn--j1amh/
RewriteRule (.*) http://domain2.ua/$1 [R=301,L]


или в соответствующую строку в панели управления.

blog.ukrnames.com

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

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