我爲我的Rails 4.2項目使用Heroku的通配符證書,該項目爲其帳戶提供用戶子域。我已經完成了它幾乎完美的工作,但有幾個扭曲要解決。如何確保HTTPS根域請求被重定向到Heroku的www
如果我在瀏覽器中輸入http://example.com,它會被重定向到https://www.example.com並解決問題。
然而如果我型我https://example.com得到我的瀏覽器
無法連接下面。 Firefox無法建立到mydomain.com上的服務器 的連接。該網站可能會暫時無法使用或者太忙 。在稍後再試....
這些都是我的DNS設置
@ ---->http://www.example.com URL重定向(這是故意的 - Heroku上不能使用明火的域使用SSL)
WWW ----> blahblah-1234.herokussl.com CNAME
子域
* ----> blahblah-1234.herokussl.com。 CNAME
除了上面提到的DNS'url-redirect',我還配置了rails來重寫rootdomain請求。 (我不認爲傳請求甚至創下軌雖然)
我創建了一箇中間件改寫請求「example.com」到「www.example.com」和之前 ActionDispatch插入它:: SSL
class RootToWWW
def initialize(app)
@app = app
end
def call(env)
request = Rack::Request.new(env)
if request.host.starts_with?('myexample.com')
[301, {"Location" => request.url.sub("//", "//www.")}, self]
else
@app.call(env)
end
end
def each(&block)
end
end
# in production.rb
config.middleware.insert_before 'ActionDispatch::SSL', 'RootToWWW'
任何人都可以解釋我可以如何確保https根域的請求重定向到www?
似乎這是與http://stackoverflow.com/questions/37766864/godaddy-with-heroku-not-running-https-for-non-www-domain,這個問題的解決方法是什麼? –