3

これを行う最もクリーンな方法は何ですか? いくつかのラック ミドルウェア? 変更しようとしましenv['SERVER_SOFTWARE']たが、まだ応答があります:

Server: thin 1.3.1 codename Triple Espresso

そのヘッダーの値を変更する方法、または応答から完全に削除する方法は?

編集

別の試み:

before do
  headers 'Server' => 'ipm'
end

after do
  headers 'Server' => 'ipm'
end

しかし、まだ変更はありません。

4

1 に答える 1

4

これはここで機能します:

require 'sinatra'

get '/' do
  [200, {'Server' => 'My Server'}, 'contents']
end

すべてのリクエストに対してそれを行いたい場合:

class ChangeServer
  def initialize(app)
    @app = app
  end

  def call(env)
    res = @app.call(env)
    res[1]['Server'] = 'My server'
    return res
  end
end

そして、use ChangeServerあなたのアプリで。

于 2012-04-12T15:02:12.793 に答える