У меня 2 домена, размещенных на разных хостах. Мне нужно перенаправить домен A в домен B. К сожалению, я не могу выполнить перенаправление 301 с хоста A, но могу только изменять / добавлять записи DNS (A-записи и CNAME) на хосте A.
Разве можно перенаправить с www.DomainA.com на www.DomainB.com, используя только A-записи и CNAME?
В настоящее время записи DNS:
DomainA.com. 3600 IN SOA ns1.HostA.net.
www 3600 IN CNAME www.DomainB.com.
DomainA.com. 3600 IN NS ns1.HostA.net.
DomainA.com. 3600 IN NS ns2.HostA.net.
DomainA.com. 3600 IN NS ns3.HostA.net.
Я хочу перенаправить
DomainA.com -> DomainB.com
*.DomainA.com -> *.DomainB.com
Я пробовал предложение из этого другой пост но это не сработало.
Как я могу добиться этого только с A-Records и CNAME, пожалуйста? Спасибо за ваш совет.
Prembo.
Таким образом, вы смотрите не на перенаправление как таковое (как это происходит на уровне приложения, то есть на Apache / Nginx / где угодно), а скорее на разрешение DNS. Хост, на котором размещен DomainA, не будет или никогда не должен быть поражен в зависимости от вашего описания, поскольку вы хотите, чтобы запросы DNS разрешались на IP-адреса DomainB. Если я чего-то не упускаю в вашем запросе?
Как указал Шейн, DNS не поддерживает перенаправление HTTP - это обязанность приложения / веб-сервера. Вы можете заставить DomainA и DomainB разрешать один и тот же IP-адрес в DNS, и все будет работать. Но если вы хотите сделать это для каждого URL / пути, то это невозможно - DNS на это не способен - это простая служба DNS-> IP, то, что происходит с фактическим URL-адресом, является задачей веб-сервера.
После комментария ниже я бы сделал ссылку на все записи DNS для DomainA на тот же IP-адрес, на который указывает DomainB - таким образом вы получите HTTP-запрос, попадающий на hostB, и тогда это будет просто:
Это перепишет все, что поступает в DomainB, в DomainA, который может быть размещен на том же сервере или где-то еще. Я понимаю, что второй вариант, вероятно, является накладным и не нужен, если вы можете / можете создавать виртуальные хосты на основе имен на apache.
<VirtualHost *:80>
ServerName DomainB
Redirect permanent / http://DomainA/
</VirtualHost>
Я бы пошел с 1. - укажите все DNS-записи DomainA на те же IP-адреса, на которые указывает DomainB, и создайте конкретные виртуальные хосты на основе имен на Apache.
Как заявляли другие, невозможно выполнить перенаправление HTTP только с помощью DNS. DNS и HTTP работают вместе, чтобы перенаправить пользователя с одной веб-страницы на другую.
Вы можете использовать DNS отдельно, чтобы домен A отображал тот же контент, что и домен B, но веб-браузер будет отображать домен A в URL-адресе. Вы должны быть очень осторожны с этим, так как это довольно плохо с точки зрения SEO. У вас будут проблемы из-за «дублированного контента», и поисковые системы накажут вас за это.
Правильный (с точки зрения UX и SEO) способ сделать эту работу - выполнить HTTP-перенаправление из домена A в домен B.
Вы можете вручную настроить свои веб-серверы (Apache, Nginx, IIS и т. Д.) Для выполнения этой работы за вас, если у вас есть техническая возможность. В Интернете есть много хороших ресурсов, которые помогут в этом.
Если вы не можете или не хотите управлять инфраструктурой, вы можете использовать службу перенаправления URL-адресов, чтобы выполнить эту работу за вас. Я основатель одного названного EasyRedir, но есть и другие.
Домен A должен иметь те же IP-адреса, что и домен B. Нет необходимости в какой-либо ссылке на B в определении A. Веб-браузеры не «следуют» за CNAME в качестве перенаправления, они сохраняют то же имя хоста и используют собственную запись CNAME для преобразования в IP-адрес.
Если вы хотите, чтобы B отображался в браузере при посещении A (необязательно и не связанного с DNS), вам необходимо сопоставить HTTP-хост и перенаправить запросы на веб-сервер. с Apache вы должны использовать mod_rewrite, чтобы сделать это так, как в определении виртуального хоста:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domainB.com$
RewriteRule ^/(.*)$ http://www.domainA.com/$1 [R=301,L]
Конечно, можно выполнить перенаправление с помощью следующего трюка:
пустой ....................... А ......................... ... ip-адрес-2
www ......................... A ....................... ..... ip-адрес-2
По сути, мы имеем дело с перенаправлением. Действительный URL-адрес будет разрешен на основе существующей первичной DNS-зоны DNS. Фиктивный URL будет перенаправлен на ip-addr-2. Важно то, что имя этой записи пусто, поэтому она упадет до следующей записи в записи и перенаправит на ip-addr-2.
Я не пробовал, но я считать ты можешь сделать это:
DomainA.com. CNAME DomainB.com.
Это вообще вместо любых других записей в файле зоны DomainA. Нет SOA, ничего.
Не пытайтесь сделать это в домене, который вам нужен.