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