Heroku SSL on root domain

后端 未结 6 1395
孤独总比滥情好
孤独总比滥情好 2020-12-02 05:26

I am trying to setup SSL for my heroku app. I am using the hostname based SSL add-on. The heroku documentation states the following:

Hostname based SSL will          


        
6条回答
  •  心在旅途
    2020-12-02 06:03

    One thing you will like to keep in mind is that google might index both versions of your site if both versions are accessible (Root vs WWW). You would need to setup conicals to handle that which might be a pain to upkeep.

    In my DNS settings I set up a URL / Forward record (DNS Simple)

    URL foo.com     3600        http://www.foo.com
    

    The CNAME setup only needs to be setup for WWW

    CNAME   www.foo.com 3600        providedsslendpoint.herokussl.com
    

    I also had to setup and Alias for my root

    ALIAS   foo.com 3600        providedsslendpoint.herokussl.com
    

    Then I decided to simply replace foo.com with an env variable ENV['SITE_HOST'] (Where SITE_HOST= www.foo.com or whatever I might define). I can control this via my heroku configuration or my .env file (See https://github.com/bkeepers/dotenv). That way, I can control what happens in different environments.

    For example, my test app uses test.foo.com as the url it also has its own SSL endpoint so that works fine for me. This also scales to create staging or qa specific environments as well.

      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
    

    From now on, end users will always access www with forced SSL. Old links will suffer a small hang but nothing noticeable.

提交回复
热议问题