Heroku/GoDaddy: отправить голый домен на www

Я пытаюсь выяснить, как получить голый домен для моего веб-сайта для перенаправления на www-домен. Я использую Heroku и имею домен от GoDaddy. Из-за Heroku мои записи A уже настроены как:

@: 75.101.145.87

@: 75.101.163.44

@: 174.129.25.170

И мой www CNAME указывает на proxy.heroku.com.

Я смотрю по всему Интернету, но не могу найти простой, бесплатный ответ о том, как я могу сделать это перенаправление. В некоторых ответах обсуждается использование платных сервисов, которые я не хочу делать, а другие говорят о входе и изменении настроек Heroku, но на самом деле не дают много объяснений. Прямо сейчас, если вы идете в мой голый домен, это просто Хероку говорит, что такого приложения нет, а если вы перейдете на мой www-домен, это мое приложение.

Ответ 1

В GoDaddy используйте функцию "Переадресация", чтобы настроить форвард от yourdomain.com до www.yourdomain.com. Доступ к функции пересылки можно получить в Менеджере домена в нижней части раздела "Информация о домене":

Domain forwarding in GoDaddy

Если вы сделаете это, весь трафик на yourdomain.com будет перенаправлен на приложение CNAME Heroku (которое является лучшим подходом).

Однако обратите внимание, что если вы находитесь в кедровом стеке, не используйте proxy.heroku.com для хоста вашего www CNAME. Вместо этого используйте your-app-name.herokuapp.com. Эти данные описаны здесь.

GoDaddy также указывает, что для того, чтобы ваше доменное имя перешло, его запись A должна быть указана на 64.202.189.170 или должна находиться между следующие диапазоны: 50.63.202.1 - 50.63.202.31 или 184.168.221.1 - 184.168.221.31.

Ответ 2

Вы также можете использовать http://wwwizer.com для перехода от своего голого домена к своему www. В GoDaddy в диспетчере DNS по записи A в типе заголовка @в разделе 174.129.25.170. Они автоматически перенаправляются из голого домена в один с www. перед ним.

Ответ 3

В редакторе зон DNS зоны GoDaddy вам нужно настроить вашу запись CNAME www, чтобы указать на @. В вашей записи A вы будете использовать подстановочный знак (*), чтобы указать на IP-адрес и вторую запись A, которая использует @в качестве хоста, который также укажет на веб-адрес. Таким образом,

subdomain1.example.com will forward to your IP
www.example.com will forward to your IP
silly.example.com will forward to your IP
anything.example.com will forward to your IP

enter image description here

Часто задаваемые вопросы

Могу ли я указать *.mydomain.com на мое приложение Heroku?

Да, используя функцию бесплатных пользовательских доменов Heroku, вы можете указать домен подстановки для своего приложения.

Какие IP-адреса следует использовать для указания моего пользовательского домена на Heroku?

В стеке маршрутизации Heroku используется коллекция IP-адресов, которые могут изменения в любое время, а использование записей A для указания вашего приложения не является поддерживается. Чтобы ваш домен всегда правильно указывал на маршрутизацию, настроить субдомены (например, www на www.example.org), используя запись CNAME:

If the app is on…   Then CNAME the subdomain to
Bamboo  yourapp.heroku.com
Cedar   yourapp.herokuapp.com

Следует избегать обнаженных (или голых/вершинных) доменов (например, example.org) из-за их доступности и времени безотказной работы.

Почему я не могу добавить subdomain.mydomain.com для своего приложения?

В некоторых случаях попытки добавить пользовательский домен (например, subdomain.mydomain.com) для приложения может привести к ошибке:

 ! mydomain.com is owned by another user

Все приложения для данного базового домена должны принадлежать тем же Хероку. Вышеприведенная ошибка означает, что кто-то еще добавили пользовательский домен mydomain.com в одно из своих приложений.

Ответ 4

Если у вас есть настройки IP-адресов в вашем голом домене и ваш www cname'd на yourappname.herokuapp.com, тогда вам нужно всего лишь использовать RackRewrite в вашем приложении, чтобы перенаправить запросы, когда они приходят к вашему приложению.

То, что вы хотите настроить, - это любой запрос на голый домен, который перенаправляется на ваш адрес www. После выполнения инструкций по установке добавьте инициализатор в config/initializers

 ApplicationName::Application.config.middleware.insert_before(Rack::Lock, Rack
 r301 %r{.*}, 'http://www.yourdomain.com$&', :if => Proc.new {|rack_env
  rack_env['SERVER_NAME'] != 'www.yourdomain.com'
 }
 end if Rails.env == 'production'

Что говорит, если запрошенный URL не является www.yourdomain.com, то 301 перенаправляет его на сайт www.yuordomain.com, но только если он работает на производстве.

Ответ 5

Для этого для работы с сетевыми решениями выполните следующие действия:

Сетевые решения, указывающие yourdomain.com на www.yourdomain.com. Вот как.

  • В диспетчере учетных записей выберите Мои имена доменов

  • Выберите имя домена, которое вы хотите управлять

  • В зеленом поле выберите "Изменить точки домена"

  • Выберите "Расширенный DNS", затем "Продолжить"

  • Сначала отредактируйте записи A, выбрав "Редактировать записи"

    Для "@none" введите следующий IP-адрес 205.178.189.129, очистите записи для "www" и "* (Все остальные)" , затем выберите "Продолжить"

  • Во-вторых, отредактируйте псевдонимы хостов (записи CNAME), выбрав "Редактировать записи CNAME"

    Введите "www" в столбце Alias ​​

    Оставьте TTL установленным на 7200, но в той же строке введите серверы имен, предоставленные службой блогов в разделе "Другие хосты" [IE ПОСЛЕДУЙТЕ ИНСТРУКЦИИ HEROKU NOW www → yourapp.herokuapp.com(Cedar Stack)]

    Выберите "Продолжить"

Теперь подождите и проверьте домен со следующей командой терминала:

host domain.com
host www.domain.com