0

我正在尝试做这样的事情:

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 应用程序一样。

这似乎应该很容易,但我还没有看到任何例子。

4

2 回答 2

1

我最终在 Rack config.ru 文件中执行此操作:

map "/abc" do
  run Foo.new('abc')
end

map "/def" do
  run Foo.new('def')
end

不完全是我想要的,但让我免于修改底层应用程序。

于 2013-10-25T13:26:02.013 回答
0

我不确定您为什么要为此使用 Sinatra。如果我理解正确,并且您将 Apache 与 Proxy-Rewrite 规则一起使用,您只需执行以下操作:

.htaccess 文件

RewriteEngine On
RewriteRule ^foo/(.*) http://localhost:61000/$1 [P]

所以你所有的都domain.tdl/foo被重定向到你本地运行的应用程序,http://localhost:61000/所有的 Post 和 Get 参数。

于 2013-10-25T07:21:01.817 回答