2011-08-24 50 views
0

所以,在我的一些數據庫記錄中,有一個對象,「內容」有一個正文,就像文檔一樣。有時候,該機構的URL指向我的應用服務器上的圖像。這些URL中的很多都是HTTP。Ruby on Rails 2.3.8:有沒有辦法總是轉發到https版本的url?

有沒有辦法將所有HTTP請求重定向到HTTPS?

我用Rails 2.3.8
和回形針寶石

+0

所以,你想改變鏈接,存在於http://到https://的內容中? –

+0

種。有超過20K的記錄可能包含http鏈接,只是改變它們會很困難,我認爲......這就是爲什麼我認爲重定向它們可能更容易。也許在控制器級別? idk – DerNalia

+0

這些鏈接指向圖像?如果您使用Apache或Nginx進行託管,則只需將URL更改爲配置即可。或者,您可以執行搜索並替換轉換URL的rake任務 –

回答

0

因爲一些瀏覽器中查看一個HTTPS頁面時的安全設置將阻止HTTP資產,你不希望在web服務器來做到這一點(例如mod_rewrite)級別,因爲某些瀏覽器不會那麼遠。

您不想在視圖或控制器級別處理此問題 - 該模型是您執行業務規則的地方,例如保留所有HTTPS。

被保存

class Content < ActiveRecord::Base 
    ... 
    before_validation :force_https 
    def force_https 
    unless body.nil? 
     self.body.gsub! /http:\/\/my\.app\.server/, 'https://my.app.server' 
    end 
    end 
    ... 
end 

2 1)防止HTTP鏈接)清理現有內容

火了控制檯,並運行此:

Content.all.each do |c| 
    c.update_attribute 'body', 
    c.body.gsub(/http:\/\/my\.app\.server/, 'https://my.app.server') 
end 
相關問題