Редирект поддомена на другой сайт

Потратив достаточно долгое время на поиски готового скрипта, пришлось констатировать тот факт, что либо все это работает не совсем правильно, либо вообще не работает.

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

Теперь подробно остановимся на каждом пункте.
Для запуска mod_rewrite используется команда RewriteEngine on, если ее закомментировать, то весь код перестанет работать, часто это бывает очень полезно.
RewriteBase указывает на использование текущей папки.

RewriteCond устанавливает правила, в зависимости от которых будет или не будет произведена замена адреса. В первом случае проверяется является ли поддомен с названием www, естественно его перенаправлять не нужно, поэтому перед строкой стоит восклицательный знак, обозначая отрицание. В скобках указано com|ru, используется только если вы имеете два одинаковых домена в разных зонах и они являются псевдонимами (алиасам) другу друга. Если вы используете один сайт, то запись будет такой:

Во втором RewriteCond проверяется наличие в имени адреса поддомена, причем работать будет одинаково с www и без него, т.е. сайты www.forum.domain.com и forum.domain.com будут обрабатываться одинаково.

Третье условие используется для проверки уже исправленного адреса, т.к. mod_rewrite выполняется пока условия перестанут подходить. Итак мы проверяем в строке запроса (URI, то что идет после имени домена, например /info.html) наличие папки куда мы перенаправили запрос, в данном случае это sub, перед ним стоит восклицательный знак, который сообщает, что условие не должно выполняться при наличии такой подстроки.

И наконец само правило преобразования адреса RewriteRule. В нем мы заменяем строку запроса на новый адрес:
sub + второй найденный элемент (условие RewriteCond % (www\.)?(.*)\.domain\.(com|ru)$, то что находится во вторых скобках) + адрес, который был изначально ( описанный в том же RewriteRule: ^(.*)$)

Перед запуском этого скрипта вам необходимо создать в папке sub необходимые вам папки поддоменов.

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

Бывают ситуации, когда необходимо использовать два разных адреса для одной и той же папки, например:
domain.com/forum/
и
forum.domain.com

В данном случае у нас на сервере уже есть папка forum, и полностью копировать ее еще и в папку sub не очень удобно и не совсем правильно. Найденный вариант использования mod_rewrite не совсем универсальный, но все позволяет обслужить конечное число поддоменов:

Источник

В этой статье мы рассмотрим, как настроить постоянный 301 htaccess редирект.

В каких случаях нужно использовать редирект

Чтобы узнать, как прописать 301 редирект htaccess с HTTP на HTTPS, воспользуйтесь отдельной подробной инструкцией: Редирект с HTTP на HTTPS. Настройка редиректа в остальных случаях описана ниже.

Внимание! Если вы используете IDN-домен (например: сайт.рф), прописывайте его в формате Punycode. Для этого вы можете использовать Punycode-конвертер.

Как настроить редирект через htaccess

Перенаправление можно настроить, добавив строки кода в файл htaccess. Примеры редиректов:

RewriteRule (.*) http://new-domain.ru/$1 [R=301,L]

old-domain.ru на домен, с которого осуществляется редирект;

new-domain.ru на домен, на который осуществляется редирект.

RewriteCond % ^www.domain.ru$ [NC]

RewriteRule ^(.*)$ http://domain.ru/$1 [R=301,L]

Замените domain.ru на имя вашего домена.

RewriteRule (.*) http://www.domain.ru/$1 [R=301,L]

Замените domain.ru на имя вашего домена.

RewriteRule ^$ http://domain.ru [R=301,L]

Замените domain.ru на домен, на который будет осуществляется редирект.

Как настроить редирект через htaccess на хостинге 2domains

Если у вас есть хостинг 2domains с панелью управления ISPmanager, воспользуйтесь инструкцией.

Убедитесь, что домен добавлен в панели управления: Как добавить домен в панели управления?

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

Перейдите в раздел «WWW-домены», кликните по домену, с которого будет происходить перенаправление на другой сайт, и нажмите Каталог:

Редирект поддомена на другой сайт. Смотреть фото Редирект поддомена на другой сайт. Смотреть картинку Редирект поддомена на другой сайт. Картинка про Редирект поддомена на другой сайт. Фото Редирект поддомена на другой сайт

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

Редирект поддомена на другой сайт. Смотреть фото Редирект поддомена на другой сайт. Смотреть картинку Редирект поддомена на другой сайт. Картинка про Редирект поддомена на другой сайт. Фото Редирект поддомена на другой сайт

Добавьте в файл код из списка выше (в зависимости от того, какой редирект нужен) и сохраните изменения, нажав Ok:

Редирект поддомена на другой сайт. Смотреть фото Редирект поддомена на другой сайт. Смотреть картинку Редирект поддомена на другой сайт. Картинка про Редирект поддомена на другой сайт. Фото Редирект поддомена на другой сайт

Источник

Доброго воскресного дня!

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

Редирект поддомена на другой сайт. Смотреть фото Редирект поддомена на другой сайт. Смотреть картинку Редирект поддомена на другой сайт. Картинка про Редирект поддомена на другой сайт. Фото Редирект поддомена на другой сайт

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

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

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

Этот способ хорош, когда вам неважно, на какую страницу нового сайта ссылаться. Но если вы переехали на другой домен, то желательно делать редиректы всех запросов с сохранением адресов. Для этого используйте такой код:
RewriteRule ^.*$ http://newsite.ru/$0 [QSA,L,R=permanent]
Новый флаг QSA сохранит так же и параметры, которые можно встретить в адресах после знака вопроса. В уже знакомом примере:

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

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

Возможен и такой вариант, что на сервере не используется Apache, например, IIS — основной «гость» на Windows-хостинге. Для уточнения свяжитесь с поддержкой своего хостера.

Источник

Как сделать 301 редирект (переадресацию) через htaccess

Редирект (перенаправление или форвардинг) —позволяет автоматически переадресовать пользователя, посетившего страницу А на страницу Б. Например, пользователь, пытающийся открыть страницу site.ru/page1/ будет попадать на site.ru/page2.

Как сделать редирект через файл htaccess

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

Redirect 301 site.ru/page1/ site.ru/page2/

Важно! Можно записывать адреса в относительном виде, например, /page1/ и /page2/.

Также допускается использование конструкции:

Redirect permanent site.ru/page1/ site.ru/page2/

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

Редирект поддомена на другой сайт. Смотреть фото Редирект поддомена на другой сайт. Смотреть картинку Редирект поддомена на другой сайт. Картинка про Редирект поддомена на другой сайт. Фото Редирект поддомена на другой сайт

Вводим нужное нам правило.

Редирект поддомена на другой сайт. Смотреть фото Редирект поддомена на другой сайт. Смотреть картинку Редирект поддомена на другой сайт. Картинка про Редирект поддомена на другой сайт. Фото Редирект поддомена на другой сайт

Как проверить работу 301 редиректа?

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

Здесь вводим адрес первой страницы и видим следующее:

Редирект поддомена на другой сайт. Смотреть фото Редирект поддомена на другой сайт. Смотреть картинку Редирект поддомена на другой сайт. Картинка про Редирект поддомена на другой сайт. Фото Редирект поддомена на другой сайт

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

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

В этом случае необходимо автоматически перекидывать всех пользователей с домена domain1.ru на domain2.ru при помощи функции:

RewriteRule ^(.*)$ http://www.domain2/$1 [R=301,L]

Переадресация с http на https

При переезде сайта с http на https (установка SSL-сертификата) потребуется код, который не требует дополнительных модификаций:

Второй метод осуществляет перенос с http://domain.ru на https://domain.ru:

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

Третий способ выполняет аналогичную функцию, но отключает перенаправление для robots.txt:

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

В 4-й версии конечным пунктом для пользователя станет https://www.domain.ru:

RewriteRule ^(.*)$ https://www.domain.ru/$1 [R=301,L]

Позволяет сделать форвардинг с http://www.poddomen.domain.ru на https://poddomen.domain.ru:

RewriteCond % ^www\.poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ https://poddomen.domain.ru/$1 [R=301,L]

Последняя версия, дающая возможность сделать связь между http://poddomen.domain.ru на https://www.poddomen.domain.ru:

RewriteCond % ^poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ https://www.poddomain.domain.ru/$1 [R=301,L]

301 редирект с домена без WWW на с WWW

В функции ниже осуществляется переход из www.poddomen.domain.ru на poddomen.domain.ru:

RewriteCond % ^www\.poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ http://poddomen.domain.ru/$1 [R=301,L]

Если же первый способ не помог можно использовать данную версию:

RewriteCond % !^poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ http://poddomen.domain.ru/$1 [R=301,L]

С www на без WWW

RewriteCond % ^poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ http://www.poddomen.domain.ru/$1 [R=301,L]

Также имеется второй метод не требующий ввода доменного имени:

C https на http

При необходимости сделать обратную интеграцию и перейти на незащищенную версию протокола можно воспользоваться:

301 редирект на http для одной страницы

В этой ситуации подойдет:

Второй метод осуществляет общий переезд на защищенный протокол (https), но одна страница останется на старом протоколе (http). Этот способ подойдет для интеграции 1С Bitrix с 1С Предприятие, так как система не может работать с защищенным протоколом:

Для готовой интеграции с 1С-Битрикс, формула позволяющая исключить директорию bitrix/admin/1c_exchange.php из общего правила:

RewriteCond % !^/bitrix/admin/1c_exchange\.php$ [NC]

Форвардинг на https для конкретной страницы

Для этой цели можно воспользоваться:

RewriteCond % ^/Необходимая директория_страница$

С несуществующего файла

В этом случае можно будет применить:

RewriteRule ^(.*)$ /poddomen/script.php [R=301,L]

Также подойдет второй способ:

RewriteCond % !^poddomen\.domain\.ru$ [NC]

RewriteRule ^(.*)$ http://poddomen.domain.ru/$1 [R=301,L]

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

В этом случае возможно пербрасывать пользователей с poddomen.domain.ru на подкаталог poddomen.

RewriteEngine on
RewriteBase /
RewriteCond % !^/poddomen
RewriteCond % ^poddomen.domain.ru$ [NC]
RewriteRule ^index.php(.*)$ /poddomen/$1 [L,QSA]

RewriteEngine on
RewriteBase /
RewriteCond % ^poddomen.domain.ru$
RewriteCond % !/poddomen/
RewriteRule ^(.*)$ /poddomen/$1 [L]

В случае, когда речь идет о www.poddomen.doamin.ru необходимо применить:

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

С любой страницы на главную

RewriteRule ^(.*)$ index.php [L,QSA]

С поддомена на основной домен

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

RewriteCond % ^(.+).domain.ru$
RewriteRule (.*) http://site.ru/$1?region=%1 [L,R=301,QSA]

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

Источник

21 способ перенаправления c http на https (redirect)

Очень много вопросов ходит вокруг данной темы. Как сделать свой сайт безопасным? Наша веб-студия mad design собрала все возможные варианты, какими пользуемся мы:

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

Что такое SSL-сертификат и зачем он нужен:

И так, сертификат куплен. Теперь нам необходимо, что бы наш ресурс с http://вашдомен.ru переходил автоматически на https://вашдомен.ru. Для этого необходимо все настройки и манипуляции произвести в файле «.htaccess», который располагается в корневой папке вашего сайта.

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

В предложенном варианте:

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

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

В примере ниже выполняется редирект с www.old-domain.ru на www.new-domain.ru:

RewriteCond задает условие, при котором происходит выполнение правила, указанного в RewriteRule. Таким образом, при запросе любой страницы www.old-domain.ru или old-domain.ru будет осуществлен переход на адрес www.new-domain.ru.

Данное перенаправление также может быть выполнено двумя способами. В примерах осуществляется редирект с forum.example.ru на www.forum.example.ru.

Способ 2 (в данном способе нет необходимости указания домена).

Источник

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

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