Heroku / GoDaddy: надіслати голий домен на www [закрито]


142

Я намагаюся розібратися, як отримати голий домен для свого веб-сайту, щоб перенаправити на домен 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, це мій додаток.


8
FAQ FAQ про Heroku говорить лише про те, як зробити переспрямування з DNSimple. Їхня сторінка підтримки посилається на StackOverflow.
Ендрю Латем

32
Я думаю, що відповідь Еміля щодо цього трохи сувора, цей сайт - це ресурс для вирішення проблем, які ми маємо на шляху програмування, і це проблема, яку я маю зараз! : D
Даніель Морріс

Це, мабуть, має бути закрито як Dupe замість Off-Topic: stackoverflow.com/questions/16022324/…
Кріс Москіні,

2
@ChrisMoschini прийнята відповідь на запитання, на яке ви посилаєтесь, не працює на GoDaddy, оскільки GoDaddy не підтримує записи ALIAS, лише CNAME. Це власне питання, я думаю.
Полювання на Тофер

1
Що б не було встановлено A Records, немає можливості мати голий домен, вказаний безпосередньо на heroku. Ми могли лише встановити, що він буде спрямований, на wwwщо вказує CNAME your-app-name.herokuapp.com.
Четабахана

Відповіді:


231

У GoDaddy використовуйте функцію "Переадресація", щоб налаштувати перехід від yourdomain.comдо www.yourdomain.com. Функцію переадресації можна отримати в Менеджері доменів у нижній частині розділу "Інформація про домен":

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

Якщо це зробити, то весь трафік на yourdomain.com буде перенаправлений на додаток Heroku CNAME (що є кращим підходом ).

Однак одна примітка, якщо ви знаходитесь у стеці Cedar, тоді не використовуйте proxy.heroku.comдля хоста свого wwwCNAME. Замість використання 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.


14
це створює попередження / помилку, якщо ви використовуєте SSL як heroku стверджує? вони сказали, якщо https: // example.com буде переспрямовано, є попередження.
Jaqx

2
@jaqx, це зі мною відбувається, ти знайшов спосіб уникнути отримання цим попередженням користувачів?
jackerman09

3
@ jackerman09 Я просто втомився від клопоту і перейшов на DNSimple
Jaqx

5
@Matt немає можливості зробити це з GoDaddy. Використовуйте функцію ALIAS / ANAME інших постачальників, таких як DNSimple або DNS Made Easy, якщо цього вам потрібно.
Ryan Daigle

3
@RyanDaigle Дякую, Райан. Я рекомендую всім залишити Godaddy з кількох причин . NameCheap.com - те, ким я зараз користуюся. Вони чудові, і вони підтримують те, що я намагався зробити. Також NameCheap приймає біткойн .
Метт

22

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


5
навіщо платити ще одну плату комусь іншому?
Бенджамін

4
Ви, пане, рятівник. @Vezu: пересилання не-ssl повністю безкоштовне. Ви просто наводите свій запис A для голого домену на цю IP-адресу, і він перенаправить браузер на домен www. Вам навіть не потрібен рахунок.
P O'Conbhui

Я намагаюся включити wwwizer для мого, і в моєму записі A у мене розміщено хост як "@", і вказано на 174.129.25.170, згідно інструкцій wwwizer, але я отримую сторінку повідомлення про помилку, коли відвідую свій голий домен! Я правильно це зробив ??
tx291

7

У редакторі зон 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, ви можете вказати домен wildcard на вашу програму.

Які 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

Усі програми для даного базового домену повинні належати одному обліковому запису Heroku. Вищевказана помилка означає, що хтось уже додав користувацький домен mydomain.com до одного зі своїх додатків.


1
Чи буде IP-адреса та веб-адреса для Heroku appname.heroku.com чи proxy.heroku.com?
Ендрю Латем

1
Ви дійсно повинні переглянути цю статтю devcenter.heroku.com/articles/custom-domains , оскільки вона охоплює все, що ви хочете зробити.
кобальц

1
Цей підхід вказує CNAME wwwна @, який все ще спрямовує трафік через фіксовану IP-адресу (що має ті ж самі недоліки, що й A-записи). Використовуйте переадресацію верхнього рівня, на GoDaddy це називається "переадресація".
Ryan Daigle

5

Якщо у вас встановлено IP-адреси на голому домені, а ваш www cname'd на yourappname.herokuapp.com, тоді все, що вам потрібно зробити, - це використовувати щось у ролі RackRewrite у вашій програмі для перенаправлення запитів, коли вони надходять до вашої заявки.

Що ви хочете налаштувати, це будь-який запит на голий домен перенаправляється на вашу www-адресу. Дотримуючись інструкцій з установки, додайте ініціалізатор у config / Initiators

 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, але лише якщо вона працює у виробництві.


1
В ідеалі це робиться на рівні DNS, уникаючи поїздки за фіксованими IP-адресами Heroku. Плюс, не впевнений, це додаток Ruby чи ні?
Ryan Daigle

Райан, перенаправлення не можна робити на рівні DNS. Вони завжди роблять HTTP.
Еміль Вікстрем

Чому як ініціалізатор і чому просто не помістити його у конфігурацію виробничого середовища?
ckarbass

Якщо я використовую heroku + мій домен зберігання, чи повинен я мати запис A, що вказує на heroku? Якщо так, то яка його вартість?
Алан Коромано

3

Для цього з мережевими рішеннями виконайте наступне:

Мережеві рішення, що вказують yourdomain.com на www.yourdomain.com. Ось як.

  1. У Менеджері облікових записів виберіть Мої доменні імена

  2. Виберіть доменне ім’я, яким ви хочете керувати

  3. У зеленому полі виберіть Змінити, де вказує домен

  4. Виберіть Розширений DNS , а потім Продовжити

  5. Спочатку відредагуйте записи A, вибравши « Змінити записи»

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

  6. По-друге, відредагуйте Псевдоніми хостів (записи CNAME), вибравши Редагувати записи CNAME

    Введіть "www" у стовпчик "Псевдонім"

    Залиште TTL встановленим на 7200, але в цьому ж рядку введіть сервери імен, що надаються службою блогів, у розділі Інший хост [IE FOLLOW THE HEROKU INSTRUCTIONS NOW www -> yourapp.herokuapp.com (Cedar Stack)]

    Виберіть Продовжити

Тепер зачекайте та перевірте домен (и) із наступною командою терміналу:

host domain.com
host www.domain.com
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.