我正在尝试使用Passenger Standalone运行Sinatra应用程序。该应用程序在URL中使用URL,如下所示:
get "/url/*" do |url|
"URL: #{url}"
end
显然nginx只会将连续斜线减少到一个。当我致电/url/http://example.com
时,它会返回:URL: http:/example.com
。当我在没有乘客的情况下运行它时,它运行得很好。
答案 0 :(得分:1)
使用/url/http://example.com
与正确网址的规则冲突:
根据RFC 1738,3.3。 HTTP:
Within the <path> and <searchpart> components, "/", ";", "?" are
reserved. The "/" character may be used within HTTP to designate a
hierarchical structure.
我会对'http://example.com'进行编码,而不是尝试将其作为路径的一部分传递。
答案 1 :(得分:0)
Passenger Standalone的Nginx预配置,显然不是为了定制。所以我要么为这个应用程序设置一个单独的Nginx和merge_slashes off
,要么找到另一个解决方案。我将以此为契机Thin。 :)