2013-12-15 54 views
0

我有一個建立在Sinatra/Padrino上的網絡應用程序,它已經啓動並正在運行,但我想對它做一些小改動以協助我們進行營銷。如果Sinatra路線來自我的網絡應用程序,就算出來

目前,當用戶輸入瀏覽器地址欄www.mygreatapp.com時,它們被帶到應用程序主頁面,這可能會讓新用戶或潛在客戶感到困惑。理想情況下,我們希望這樣,當他們從另一個網站或谷歌搜索到我們的主頁或手動輸入網址時,它們會顯示一個單獨的登錄頁面,這些網站會詳細解釋網站,然後才能前往實際的主頁。

請記住,在Web應用程序中,有更深層頁面的鏈接會重定向回主頁,我們希望這些鏈接仍然會轉到實際主頁。

目前,該主頁的路由處理程序是這樣的:

get '/' do 
    render 'homepage' 
end 

我基本上是希望它能夠做的是:

get '/' do 
    if {{ This was called from within www.mygreatapp.com }} 
    render 'homepage' 
    else {{ This was called from externally or another site }} 
    render 'landingpage' 
    end 
end 

這可能嗎?這甚至是處理這種事情的最好方法嗎?也許還有另外一種方法可以完成這個,我錯過了?

+0

嗯 - 有'request.referrer' - 但它似乎是空的,當我剛剛嘗試它 – froderik

+0

謝謝,我一直在玩這個 - 它看起來像request.referrer設置爲'nil'當你手動鍵入URL,否則會填充調用頁面URL。我建立了一個'request.referrer.match('mysite.com')'來檢查頁面被調用的位置,並取得了一些成功。 – Devan

+0

我也試過,但是當你瀏覽的網站是localhost時,它可能會中斷。我會牢記這一點。不會感到驚訝,如果我需要類似的東西... – froderik

回答

1

是的,這是可能的,有很多方法可以做到這一點。就我個人而言,我會在着陸頁上設置自己的路線,並在第一次訪問時放置一個永久性的cookie(也可能是其他的東西,以防萬一)在第一次訪問時表明有人已經去過該網站。如果他們有cookie,不要做任何事情。如果他們不是,他們是新的,重定向到着陸頁。

+0

是的,我決定去cookie方法以及雙重檢查,看看是否使用request.referrer屬性在應用程序內調用鏈接。謝謝。 – Devan

相關問題