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, но в действительности не дают большого объяснения. Прямо сейчас, если вы зайдете на мой открытый домен, просто Heroku скажет, что такого приложения не существует, а если вы перейдете на мой домен www, это мое приложение.

5 ответов

Решение

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

Переадресация домена в GoDaddy

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

Одно замечание: если вы в стеке Cedar, не используйте 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.

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

В редакторе 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

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

Могу ли я указать *.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

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

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

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

 ! mydomain.com is owned by another user

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

Если у вас есть настроенные 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, но только если он запущен в работе.

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

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

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

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

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

  4. Выберите Advanced DNS, затем Continue

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

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

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

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

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

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

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

host domain.com
host www.domain.com
Другие вопросы по тегам