Маршруты Синатры с символом + - PullRequest
0 голосов
/ 03 января 2012

Я недавно переименовал некоторые страницы на моем (поддерживаемом Синатрой) сайте. Я перенаправляю со старых имен на новые, используя следующие маршруты, которые я поставил перед другими:

##
# Renamed pages
#
get '/venue' do redirect '/the+wedding/reception'; end
get '/accommodation' do redirect '/out+of+town+info/accommodation'; end
get '/things+to+do' do redirect '/out+of+town+info/things+to+do'; end

Первые два работают нормально, но третий дает 404. Есть ли что-то особенное в + на этом третьем маршруте? Я не могу найти ничего полезного в документации и не могу избежать их так, чтобы маршрут работал.

Я тестировал с curl, и первые два используют 304, как и ожидалось, третье отображает обычную страницу 404.

Я использую sinatra 1.2.6, как в Debian.

1 Ответ

2 голосов
/ 18 января 2012

Эта проблема была вызвана причудой при разборе запроса Синатры.В Sinatra 1.3.0 это было исправлено Константином Хаазе с https://github.com/sinatra/sinatra/pull/271.

Так что, как только вы обновите свой Sinatra до чего-то> = 1.3.0, разбор запросов должен работать как положено.

...