簡體   English   中英

Ruby on Rails 2.3.8:有沒有辦法始終轉發到URL的https版本?

[英]Ruby on Rails 2.3.8: is there a way to always forward to the https version of an url?

因此,在我的某些數據庫記錄中,有一個對象“內容”具有主體,就像文檔一樣。 有時,主體的URL指向我的應用服務器上的圖像。 這些URL中有許多是HTTP。

無論如何,是否會將所有HTTP請求重定向到HTTPS?

我正在使用Rails 2.3.8
和回形針寶石

由於某些瀏覽器安全設置將在查看HTTPS頁面時阻止HTTP資產,因此您不希望在Web服務器級別(例如mod_rewrite)執行此操作,因為某些瀏覽器無法做到這一點。

您不想在視圖或控制器級別處理此問題-模型是您在其中執行業務規則(例如將其全部保留為HTTPS)的地方。

1)防止保存HTTP鏈接

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)清理現有內容

啟動控制台並運行以下命令:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM