我正在尝试做这样的事情:
class Dispatcher < Sinatra::Base
def initialize
@foo = Foo.new
end
get '/foo/*' do
@foo.call(params[:splat])
end
end
所以URL / foo / abc / def?xxx = yyy就像用/ abc / def?xxx = yyy调用Foo应用程序。
这似乎应该很容易,但我没有看到它的任何例子。
答案 0 :(得分:1)
我最终在Rack config.ru文件中执行此操作:
map "/abc" do
run Foo.new('abc')
end
map "/def" do
run Foo.new('def')
end
不完全是我想要的,但是让我免于修改底层应用程序。
答案 1 :(得分:0)
我不确定你为什么要使用Sinatra。如果我理解你是对的,并且你使用Apache代理重写规则你就可以:
.htaccess文件
RewriteEngine On
RewriteRule ^foo/(.*) http://localhost:61000/$1 [P]
因此,所有domain.tdl/foo
都会被http://localhost:61000/
重定向到您当地正在运行的应用,其中包含所有发布和获取参数。