这是怎么做的:
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
使用rack-rewrite语法?
答案 0 :(得分: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