2012-06-11 55 views
1

不知怎的,谷歌索引我的主頁爲https://mydomain.com。當您執行網站:mydomain.com搜索時,第一個結果是https://mydomain.com,我沒有SSL證書,也不想執行https。現在,我們的訪問者在他們的瀏覽器中收到了難看的警告(因爲heroku默認提供* .heroku證書)。機架重寫代碼重定向https到http(在heroku上)

看來我可以做一個301重定向的機架重寫寶石,但我無法找到如何。

那麼,什麼是機架重寫配方重定向所有https://到http://?我能找到的所有信息都是關於如何做相反的事情或做出規範的重定向。

+0

我想完成完全相同的事情。你最終使用了什麼解決方案? – Lee

回答

1

嗯,未經測試,但會像這樣的工作?

r301 %r{.*}, 'http://non-secure-domain.com$&', :if => Proc.new {|rack_env| 
    rack_env['SERVER_PORT'] != '80' 
} 
0

提到了一個很好的方式,使用從機架重寫的scheme選項只會造成在Heroku上一個無限循環。由於heroku將代理您的工作人員,您也無法在80端口上工作。由於這個和路由層的工作方式,你必須檢查HTTP_X_FORWARDED_PROTO頭:

r301 %r{.*}, 'http://example.com$&', :if => Proc.new { |rack_env| 
    rack_env['HTTP_X_FORWARDED_PROTO'] == 'https' 
}