2011-03-15 37 views
0

我有一個帶有一個指向主站點的A記錄的短url域的站點(這是一個很痛苦的改變,所以我不想)。當從短URL訪問應用程序時,我需要運行特殊的邏輯。在Apache中重定向時設置引用/標頭

現在,我已經使用RewriteRule爲您設置了一個301來訪問主網站,但如果我嘗試訪問引用鏈接或任何類型的頭文件,它們似乎都消失了。我可以通過附加一個查詢參數來解決這個問題,但是我寧願不要將網址混淆。關於如何在Apache中設置一些數據的任何想法,我可以在Rails應用程序中訪問這些數據以判斷請求是否是訪問短URL的結果?

回答

0

引薦完全是客戶端,你只有兩種選擇(除了查詢字符串等):

  1. 允許的Rails來處理重定向你,而不是Apache和存儲一些信息在用戶的會話中。使用cookie RewriteRule選項。 RewriteRule有一個cookie/CO選項,允許您將Set-Cookie和重定向響應一起發送到瀏覽器。選項的格式是:cookie|CO=NAME:VAL:domain[:lifetime[:path]]。有關更多詳細信息,請參見RewriteRule documentation

+0

我試圖設置cookie,但我沒有看到它的頁面呈現之後被設置: <虛擬主機*:80> 服務器名shorturl.com RewriteEngine敘述上 的RewriteCond%{HTTP_HOST}^SHORTURL \。 [*] rdeshpande

+0

@rdeshpande您好,我是[忘記了過期參數。你指定'/'作爲過期,這可能會使其過期。 –

0

由於嚴格的性能原因,我會堅持使用Apache做重定向,所以它不需要進入Rack(又花費更多時間)。因此,我會在RewriteRule上設置一個cookie,並在檢測到重定向後銷燬cookie。