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-кодировка, но это не должно быть слишком сложно.