2011-02-27 77 views
0

我正在嘗試與Passenger Standalone一起運行Sinatra應用程序。該應用程序需要在這樣的URL URL:何我阻止Passenger Standalone/nginx刪除雙斜槓?

get "/url/*" do |url| 
    "URL: #{url}" 
end 

顯然nginx減少連續的斜線只有一個。當我致電/url/http://example.com時,它返回:URL: http:/example.com。當我在沒有Passenger的情況下運行它時,它完美地起作用。

+0

什麼是nginx配置文件? – Zimbabao 2011-03-01 20:44:30

+0

沒有。看到我的答案。 – rausch 2011-03-02 08:11:39

回答

0

Passenger Standalone的Nginx預先配置好了,顯然不是要定製的。所以我要麼爲這個應用程序設置一個單獨的Nginx與merge_slashes off或找到另一個解決方案。我會以此爲契機嘗試Thin。 :)

1

使用/url/http://example.com與正確的URL規則的碰撞:

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',而不是嘗試將它作爲路徑的一部分傳遞。