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
, Доступ к функции пересылки можно получить в диспетчере доменов в нижней части раздела "Информация о домене":
Если вы сделаете это, весь трафик на 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. Вот как.
В " Диспетчере учетных записей" выберите " Мои доменные имена".
Выберите доменное имя, которым вы хотите управлять
В зеленом поле выберите " Изменить точки домена".
Выберите Advanced DNS, затем Continue
Сначала отредактируйте записи A, выбрав " Редактировать записи A".
В качестве "@ none" введите следующий IP-адрес 205.178.189.129, очистите записи для "www" и "* (Все остальные)", затем выберите "Продолжить".
Во-вторых, отредактируйте псевдонимы хоста (записи CNAME), выбрав "Редактировать записи CNAME".
Введите "www" в столбце Alias
Оставьте TTL равным 7200, но в той же строке введите серверы имен, предоставляемые службой ведения блогов, в разделе "Другие хосты" [ IE СЛЕДУЕТ СЕЙЧАС ИНСТРУКЦИИ HEROKU www -> yourapp.herokuapp.com (Cedar Stack) ]
Выберите Продолжить
Теперь подождите и проверьте домены с помощью следующей команды терминала:
host domain.com
host www.domain.com