0
所以,在我的一些数据库记录中,有一个对象,“内容”有一个正文,就像文档一样。有时候,该机构的URL指向我的应用服务器上的图像。这些URL中的很多都是HTTP。Ruby on Rails 2.3.8:有没有办法总是转发到https版本的url?
有没有办法将所有HTTP请求重定向到HTTPS?
我用Rails 2.3.8
和回形针宝石
所以,在我的一些数据库记录中,有一个对象,“内容”有一个正文,就像文档一样。有时候,该机构的URL指向我的应用服务器上的图像。这些URL中的很多都是HTTP。Ruby on Rails 2.3.8:有没有办法总是转发到https版本的url?
有没有办法将所有HTTP请求重定向到HTTPS?
我用Rails 2.3.8
和回形针宝石
因为一些浏览器中查看一个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
所以,你想改变链接,存在于http://到https://的内容中? –
种。有超过20K的记录可能包含http链接,只是改变它们会很困难,我认为......这就是为什么我认为重定向它们可能更容易。也许在控制器级别? idk – DerNalia
这些链接指向图像?如果您使用Apache或Nginx进行托管,则只需将URL更改为配置即可。或者,您可以执行搜索并替换转换URL的rake任务 –