【问题标题】:Select SSL Routes serving up rails 4 static pages via highvoltage gem选择 SSL Routes 通过 highvoltage gem 为 rails 4 静态页面提供服务
【发布时间】:2013-12-04 04:04:15
【问题描述】:

我有几个静态 erb 页面通过高压 gem 在 ruby​​ rails 4 站点中提供:

get '/about'    => 'high_voltage/pages#show', id: 'about'
get '/contact'  => 'high_voltage/pages#show', id: 'contact', :protocol => "https"
get '/privacy'  => 'high_voltage/pages#show', id: 'privacy'

这一切都运行良好,除了 /contact 路由不会重定向或强制 SSL,它对使用的任何协议都很满意。

我将站点托管在引擎场上,试图仅在路线中放置 :force_ssl 或变体导致部署失败 - 高压使用的参数集与正常路线略有不同,因此我怀疑某处存在冲突。

有人使用带有 rails 4 的高压和 SSL 来选择静态页面(不是整个站点)吗?请提供路线示例。

【问题讨论】:

    标签: ssl ruby-on-rails-4 high-voltage


    【解决方案1】:

    您可以通过覆盖HighVoltage#PagesController 来实现此目的,请参阅文档的override section

    它可能看起来像这样:

    class PagesController < ApplicationController
      include HighVoltage::StaticPage
    
      before_filter :ensure_secure_page
    
      private
    
      def ensure_secure_page
        if params[:id] == 'contact'
          # check to make sure SSL is being use. Redirect to secure page if not.
        end
      end
    end
    

    接下来禁用 HighVoltage 提供的路由:

    # config/initializers/high_voltage.rb
    HighVoltage.routes = false
    

    然后您需要在应用程序的路由文件中设置一个新路由:

    # config/routes.rb
    get "/pages/*id" => 'pages#show', as: :page, format: false
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-29
      • 1970-01-01
      相关资源
      最近更新 更多