Ruby on rails 如何将一个子域重写为另一个子域?
我编写了这个简单的框架中间件来重写我的子域:Ruby on rails 如何将一个子域重写为另一个子域?,ruby-on-rails,url-rewriting,subdomain,rack,middleware,Ruby On Rails,Url Rewriting,Subdomain,Rack,Middleware,我编写了这个简单的框架中间件来重写我的子域: def call(env) request = Rack::Request.new(env) if request.host.starts_with?("something-something") [301, { "Location" => request.url.gsub('something-something','site-i-want') }, self] else @app.call(en
def call(env)
request = Rack::Request.new(env)
if request.host.starts_with?("something-something")
[301, { "Location" => request.url.gsub('something-something','site-i-want') }, self]
else
@app.call(env)
end
这对发展很有效。但是在生产中,我遇到一个错误,调用的名称的
我写这篇文章的方式有什么奇怪的语法错误吗
我想要这个someting something.mywebsite.com
转到site-I-want.mywebsite.com
我还直接用我的路线尝试了以下方法:
constraints :subdomain => 'something-something' do
redirect { |p, req| req.url.sub('something-something', 'site-i-want') }
end
这对发展很有效。但是,在我失败之前,我不会说这个网站不存在
无论怎样都可以实现这一目标。在您的路线上尝试一下如何:
constraints subdomain: 'something-something' do
get ':any', to: redirect(subdomain: 'site-i-want', path: '/%{any}'), any: /.*/
end
它基本上捕获对“某物”域的任何请求,并用现有路径(但新的子域)重写它