2012-01-02 48 views
0

我最近在我的(sinatra-backed)網站上重新命名了一些頁面。我是從舊名稱到新的使用下面的路線,我已經任何人面前放重定向:帶+字符的Sinatra路線

## 
# 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頁面。

我在使用包裝在Debian中的sinatra 1.2.6。

+0

您正在使用哪一個確切版本的Sinatra? – 2012-01-02 22:06:26

+0

感謝Holger,我已經更新了這個問題:1.2.6。我會給寶石嘗試和更新。 – 2012-01-03 01:17:51

+0

按1.3.2的預期工作。我會切換到我的服務器上的寶石(下次檢查錯誤)。謝謝。 – 2012-01-03 01:35:53

回答

2

此問題是由Sinatra的請求解析中的一個怪癖造成的。 Konstantin Haase在Sinatra 1.3.0中將其修正爲https://github.com/sinatra/sinatra/pull/271

因此,一旦您將您的Sinatra更新爲大於等於1.3.0的值,請求解析應該按預期工作。