Как я могу запретить Passenger Standalone / nginx удалять двойные косые черты? - PullRequest
0 голосов
/ 27 февраля 2011

Я пытаюсь запустить приложение Sinatra с Passenger Standalone.Приложение принимает URL-адрес в URL-адресе следующим образом:

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

Очевидно, nginx уменьшает количество последовательных слешей до одного.Когда я звоню /url/http://example.com, он возвращает: URL: http:/example.com.Когда я запускаю это без Passenger перед ним, оно отлично работает.

Ответы [ 2 ]

1 голос
/ 26 мая 2011

Использование /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' вместо того, чтобы пытаться передать его как часть пути.

0 голосов
/ 02 марта 2011

Пассажирский автономный Nginx поставляется с предварительно сконфигурированным и, очевидно, не предназначен для настройкиПоэтому я должен либо настроить отдельный Nginx с merge_slashes off для этого приложения, либо найти другое решение.Я воспользуюсь этой возможностью, чтобы попробовать Тонкий .:)

...