Как настроить записи DNS, чтобы весь трафик перенаправлялся с одного домена на другой?

У меня есть доман, mydomain.com, а также mydomain.biz, и я хотел бы, чтобы последний был синонимом первого: всякий раз, когда пользователь вводит www.mydomain.biz, он попадает в www.mydomain.com.

У меня все работает для mydomain.com, и я подумал, исходя из моего ограниченного понимания, что запись CNAME выполнит то, что я пытаюсь сделать. , так что я

NS     mydomain.biz.    =  (nameservers that work fine)
SOA    mydomain.biz.    =  (values that work fine)
CNAME  *.mydomain.biz.  =  mydomain.com.

и когда я host mydomain.biz получаю

www.mydomain.biz is an alias for mydomain.com.

сопровождаемая другой информацией, которая точно соответствует тому, что я получаю с host mydomain.com. Тем не менее, любая попытка перейти к www.mydomain.biz терпит неудачу.

Меня также озадачивает то, что я вижу, когда смотрю на распространение моих записей NS. Проверка на mydomain.biz дает серверы имен, указанные выше, но проверка на www.mydomain.biz дает значения, указанные (в другом месте) для mydomain.com

Я не иду об этом правильно? Как настроить записи DNS, чтобы весь трафик перенаправлялся с одного домена на другой.


person orome    schedule 13.02.2015    source источник


Ответы (1)


DNS не может перенаправить запрос. Давайте рассмотрим пример того, что делает CNAME, чтобы прояснить:

CNAME: доменA ==> доменB

Что это будет делать, так это отправлять запросы для домена A на тот же IP-адрес, что и домен B. Однако URL-адрес останется domainA (так что это не перенаправление, перенаправление фактически изменит URL-адрес).

Если вы согласны с тем, что сайт загружается под двумя разными доменами, тогда запись CNAME сделает эту работу. Однако вам необходимо убедиться, что ваш сервер настроен для обработки запросов как из домена A, так и из домена B. То, как вы это делаете, сильно различается в зависимости от вашей серверной среды. Например, если вы используете apache, ваши виртуальные хосты определяют, какие домены обрабатываются (вы можете настроить его так, чтобы принимался любой домен). Однако, если вы находитесь на виртуальном хостинге, вы, вероятно, будете ограничены доменом, на который вы зарегистрировались. Добавление большего количества зависит от вашего веб-хостинга, поэтому вам придется обсудить это с ними.

С другой стороны, если вы хотите, чтобы посетитель был перенаправлен на домен B, вам нужно указать домен A на сервер, который вернет HTTP-перенаправление. Это может быть тот же сервер, вам просто нужно настроить его так, чтобы он возвращал перенаправление HTTP, если запрос относится к домену A.

person Faris    schedule 14.02.2015
comment
Таким образом, ответ, который я дал (и сотни подобных ему в Интернете) об использовании CNAME для этой цели, неверен? - person orome; 14.02.2015
comment
Я думаю, что ответ, который вы связали, просто неправильно использует слово «перенаправление». Я нашел это stackoverflow.com/questions/593807/, это объясняет это лучше. - person Faris; 14.02.2015
comment
Вот и мой вопрос, я думаю. Результат, который я ищу, такой же, как описано для CNAME, если я что-то не упустил. И CNAME работал для меня в прошлом, чтобы выполнить это. - person orome; 14.02.2015
comment
Запись CNAME направит домен A на домен B, так что они оба в конечном итоге перейдут на один и тот же сервер, но URL-адрес по-прежнему будет исходным доменом A. Если вы этого хотите, отлично. Все, что вам нужно сделать, это убедиться, что ваш сервер ожидает запросов с хостом, являющимся доменом A, чтобы он перестал давать сбой, как вы сказали. - person Faris; 14.02.2015
comment
Итак, сервер для B нуждается в некоторой настройке для получения A? Это кажется странным: в тех случаях, когда это работало, сервер никак не настраивался — ни для A, ни для B. - person orome; 14.02.2015
comment
Мне нужно гораздо больше информации о вашем сервере, чтобы иметь возможность прокомментировать, почему сервер не принимает соединение с другого хоста, но во многих случаях да, вам нужно его настроить. Давайте возьмем в качестве примера самый простой случай: если вы находитесь на виртуальном хостинге, вам нужно добавить домен в качестве дополнительного домена или что-то в этом роде. - person Faris; 14.02.2015
comment
Те, которые работают в настоящее время (в прошлом у меня работали другие, но я не могу ручаться за детали), — это экземпляры AWS EC2 (Elastic Beanstalk) с балансировкой нагрузки. Я не понимаю, как их заботит URL-адрес, направленный на них, поскольку я могу изменять записи DNS (только) и отправлять им любые URL-адреса, которые захочу. Возможно, тот, который не работает (старый виртуальный хостинг), специально настроен на только прием B? - person orome; 14.02.2015
comment
Я немного смущен. Находится ли mydomain.com на виртуальном хостинге? Если это так, то вам, вероятно, просто нужно добавить mydomain.biz на сервер. Общий хостинг строг с доменными именами, поскольку он является общим. Однако с эластичным бобовым стеблем это не имеет никакого значения, поэтому, если он на нем, извините, я понятия не имею, в чем проблема. - person Faris; 14.02.2015
comment
Нет, я думаю, вы, возможно, столкнулись с проблемой (и столкнулись с моим невежеством): CNAME работают, когда они направлены на AWS Elastic Beanstalk, но не на мой старый сервер общего хостинга. Я никогда не думал об этом, но теперь это имеет смысл (я думаю, если вы можете подтвердить). В AWS сервер представляет собой VPS, поэтому я ожидаю, что все это принадлежит мне и не зависит от того, какой домен он принимает (конечно, я мог бы это изменить); на моем (на самом деле любом) старом сервере виртуального хостинга есть что-то (в каком-то файле конфигурации Apache), которое ограничивает трафик определенными доменами. Примерно так? - person orome; 14.02.2015
comment
Совершенно верно мой друг. Обычно на виртуальном хостинге вы можете добавить больше доменов из cpanel, если она у вас есть. В противном случае я не уверен, как бы вы добавили это честно. Все зависит от вашего провайдера сервера. Некоторые из них ограничивают его одним доменом, если вы не обновите его. - person Faris; 14.02.2015
comment
Я думаю, что в системе VPS (по крайней мере, с теми, которые мне надоели) ограничений нет (на самом деле это не имеет смысла, учитывая архитектуру). Таким образом, ответ здесь действительно заключается в том, что CNAME действительно работают так, как рекламируется, но нужно быть уверенным, что сам сервер каким-то образом не ограничивает домены, которые он принимает, как это было бы (должно быть) в случае для виртуального хостинга. (И было бы здорово, если бы в ответе кратко упоминалось, какая обратная магия в конфигурации сервера за это отвечает.) - person orome; 14.02.2015
comment
И, что касается последнего бита (и предположения здесь), если я посмотрю http://stackoverflow.com/a/16129490/656912 на мои VPC, я вижу (опять же догадываюсь), что VirtualHost и ServerName не закомментированы, что (как я понимаю) не то, что можно было бы увидеть в общей среде. Верно? - person orome; 14.02.2015
comment
Давайте продолжим обсуждение в чате. - person Faris; 14.02.2015