2015-09-04 147 views
1

我使用的是URL rewriter,我想獲得client side URL。我試圖傾銷CGI,但沒有關於此的信息。ColdFusion獲取客戶端URL

如果請求的URL是:www.test.com/test/testing-data

,改寫後變成了:www.test.com/test.cfm?urlData=testing-data

現在,我想:/test/testing-data

我可以通過使用window.location.pathname得到此JS

我的問題是:我們怎樣才能得到相同的使用ColdFusion?有什麼建議麼。

回答

0

問題是URL請求重寫發生在之前請求被轉發到ColdFusion App引擎。您可以嘗試傾銷gethttprequestdata()並查看主機標頭是否與原始標頭匹配 - 但我懷疑它是CGI作用域已解析此數據。

最好的辦法是改變重寫規則以包含URL參數。所以在你的例子中:test.cfm?urlData=testing-data現在可以是test.cfm?urldata=testing-data&originalpath=/test/test-data - 或者URLEncoded equivilant。

它發生在我身上,變量urlData已經包含您需要重建路徑的數據。難道你不能只是這樣做:

<cfset variables.mypath = '/test/' & url.urlData> 

這似乎是你想要什麼沒有?

+0

重建路徑可以在頁面級完成,但我希望它在模板中。 – Beginner

+0

我想我不明白你的結局。你想要它「模板」 - 意味着什麼?如果它在一個變量中,它是一個變量 - CGI,URL,表單,變量......有什麼區別? –

+0

「X-REWRITE-URL」標題是否包含您所追求的內容? –