2

これを行う方法:

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

ラック書き換え構文で?

4

1 に答える 1

2

このための新しいミドルウェアを作成できます

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

  def call(env)
    request = Rack::Request.new(env)
    if !request.host.starts_with?("www.")
      [301, { "Location" => request.url.gsub(/\/\/([^\.]*)/, "//www") }, self]
    else
      @app.call(env)
    end
  end
end

これはテストされていませんが、正しい方向に進むはずです。www.example.comだけでなく もチェックする条件を追加したいと思うでしょうexample.com。その場合、上記のミドルウェアは現在爆発する可能性があります。

あなたはこれを入れて/lib/middleware/subdomain_to_www_middleware.rb、追加することができます

config.autoload_paths += %W( #{ config.root }/lib/middleware )

あなたconfig/application.configに、そして

config.middleware.use "SubdomainToWwwMiddleware"

あなたにconfig/environments/production.rb

于 2012-11-15T14:44:11.040 に答える