Редирект с одного домена на другой в Apache
Будем редиректить так, чтобы не терялись все пути и куеристринги.
Зайдём по адресу http://старое.ру/qwe?asd=zxc
, и нас будет редиректить на https://новое.ком/qwe?asd=zxc
Это можно писать в .htaccess
, но мы напишем это прямо в конфиг виртуальных хостов.
1 2 3 4 5 6 |
<VirtualHost *:80> ServerName old.ru ServerAlias *.old.ru RewriteEngine on RewriteRule "^/?(.*)" "https://dima.stefantsov.com/$1" [R=301,L] </VirtualHost> |
Если же в вашем случае надо редиректить вообще всё, что своим DNSом смотрит на ваш сервер, то можно сделать ещё проще. Как вы знаете, в Апаче существует дефолтный виртуал хост. Тот Virtual Host, который встречается первым — и есть дефолтный. Именно он будет использоваться по умолчанию, если никакое другое правило не подошло.
Предполагаем, что вы конечно же основные виртуал хосты прописали как надо. Поэтому теперь вы имеете право дописать в дефолтный VirtualHost вот что:
1 2 |
RewriteEngine on RewriteRule "^/?(.*)" "https://dima.stefantsov.com/$1" [R=301,L] |
И всё!
Не забудьте перезагрузить ваш сервер apache2, например командой sudo service apache2 restart
.
Учтите, что если вы хотите редиректить источник https, вам соответственно нужно будет настроить верный подходящий ssl сертификат. Ведь прежде, чем сервер будет иметь право ответить «301 иди туда», он должен будет подтвердить браузеру, что данный сервер имеет право соответствовать доменному имени, по которому вы обращаетесь, old.ru
.
Если вы всё-таки хотите прописать это в .htaccess
, то можно написать следующее:
1 2 3 4 |
<IfModule mod_rewrite.c> RewriteEngine on RewriteRule "^/?(.*)" "https://dima.stefantsov.com/$1" [R=301,L] </IfModule> |
Редиректы работают, никаких лишних двойных слешей, весь путь и куеристринги сохраняются.
Обсуждение
Хорошо когда данные не теряются если перебрасываешь с одного домена на другой,а вообще это бесплатно и легально или могут быть потом проблемы???Например не будет потом выдавать, что неправильный хост??
Здравствуйте, Александр.
Проблемы потом действительно могут быть — в случае если не понимаете до конца, что делаете.
Здесь мы делаем простой 301 «вечный» редирект. Да, это бесплатно и легально. Как говорится, без смс )
Кто и что будет потом выдавать, что неправильный хост? Не уверен, что понял вопрос.
Если говорить про поисковый вес, то он, с небольшими потерями, будет перенесён на новую ссылку. Это единственный и правильный способ сменить домен: настроить на старом домене правильные 301 редиректы на новый домен, с сохранением функциональности всех страниц/ссылок.
благодарен Вам за быстрый ответ…