DNS-гуру: как переадресовать сайт www.domain.com на домен .com, используя только DNS?
Я запускаю блог на posterous.com, и они могут разместить мое доменное имя, если я создаю запись A на свой IP-адрес в собственном инструменте DNS для регистратора домена.
Проблема в том, что я хочу, чтобы мой домен ВСЕГДА читал domain.com, поэтому я хочу, чтобы мой DNS переназначил любые запросы на www.domain.com на домен .com, и я не могу использовать .htaccess или PHP или другие методы сервера, поскольку это просто интерфейс блога.
До сих пор я пробовал:
@ A target.ip.address
www CNAME domain.com
Что перенаправляет сайт www.domain.com на правильный сайт, но www. все еще находится в домене. Я слышал, что вы могли бы сделать:
@ A target.ip.address
www A internal.redirector.ip.address
но я не знаю свой внутренний IP-адрес регистратора, который мог бы справиться с этим перенаправлением (или даже если такая вещь действительно существует).
Может ли то, что я прошу, сделать?
Спасибо, вы, ребята, рок.
-Josh
Ответы
Ответ 1
Нет, вы не можете сделать это с DNS - результат DNS-запроса не изменит то, что происходит на уровне HTTP, поэтому первоначально введенное имя домена всегда будет тем, которое было отправлено на веб-сервер в Host:
.
Веб-браузеры ищут только записи A
в DNS, а это рекурсивный сервер имен пользователей ISP, который обнаруживает, что на самом деле имя имеет только запись CNAME
, которую он затем ищет, и возвращает соответствующий IP-адрес к этому имени в записи CNAME
.
Обычный API C gethostbyname()
не возвращает ни одну из этих CNAME
информации в приложение, все, что он когда-либо получает, - это конечный результирующий IP-адрес.
Чтобы достичь того, что вы хотите, вам нужно будет организовать www.example.com
, чтобы иметь отдельный хостинг из вашего блога, а затем сделать этот сайт перенаправлением HTTP на example.com
(т.е. без префикса www
)
Ответ 2
Может ли то, что я прошу, сделать?
Нет, не с DNS.
Вы можете настроить что-то вроде веб-магазина dyndns.com. В основном вы указываете www.posterous.com на сервере dyndns, когда браузер подключается, они отправляют HTTP 302 перенаправление на нужный URL (posterous.com).
http://www.dyndns.com/services/webredirect/
Ответ 3
Я не уверен, что вы можете сделать это с помощью DNS, но я уверен, что вы можете выполнить его с некоторыми обманами javascript в своем блоге. I.e., фрагмент javascript, который запускается на каждой загрузке страницы, может проверять сервер текущей страницы и переписывать местоположение, если это соответствует "www". префикс. Конечно, будет некоторое мерцание, когда страница загружается, а затем перезагружается, и поисковые системы также игнорируют эту перенаправление, поэтому ваш контент может отображаться под неправильным адресом в результатах поиска, но по крайней мере пользователи будут видеть правильный, предназначенный адрес.
Альтернативная идея: Если ваш регистратор DNS предоставляет бесплатный веб-сервис дополнительно, выполните перенаправление там, добавьте правило перезаписи для перевода пути запроса к аргументу script и для каждого запроса создайте простую страницу с iframe, обращаясь к реальному контенту. Для этого снова требуется некоторая PHP-кодировка, но это не должно быть слишком сложно.