Вы должны иметь в виду, что Google может проиндексировать обе версии вашего сайта, если обе версии доступны (Root vs WWW). Вам потребуется настроить конусы для обработки того, что может быть затруднительно для обслуживания.
В настройках DNS я настроил запись URL / пересылки (DNS Simple)
URL foo.com 3600 http://www.foo.com
Настройка CNAME должна быть настроена только для WWW
CNAME www.foo.com 3600 providedsslendpoint.herokussl.com
Мне также пришлось настроить и псевдоним для моего рута
ALIAS foo.com 3600 providedsslendpoint.herokussl.com
Тогда я решил просто заменить foo.com на переменную env ENV['SITE_HOST']
(где SITE_HOST = www.foo.com или что я могу определить). Я могу управлять этим через мою конфигурацию heroku или мой файл .env (см. https://github.com/bkeepers/dotenv). Таким образом, я могу контролировать то, что происходит в различных средах.
Например, мое тестовое приложение использует test.foo.com в качестве URL-адреса, к которому у него также есть собственная конечная точка SSL, что прекрасно работает для меня. Это также масштабируется для создания промежуточных или определенных сред.
before_filter :check_domain
def check_domain
if Rails.env.production? || Rails.env.testing? and request.host.downcase != ENV['SITE_HOST']
redirect_to request.protocol + ENV['SITE_HOST'] + request.fullpath, :status => 301
end
end
Отныне конечные пользователи будут всегда иметь доступ к www с принудительным SSL. Старые ссылки будут немного зависать, но ничего заметного.