2017-04-20 23 views
0

使用包括hashtag我已經做了網站,這條線在.htaccess文件:PHP中的URL

RewriteRule ^(.\*)/(.\*)/(.\*)$ index.php?module=$1&action=$2&value=$3 [QSA,L] 

的問題是,當最後一個參數與哈希標籤啓動時,它不會被分配到「值」,即使我用PHP功能urlencode()對其進行編碼,該鏈接看起來像這樣(開始就忽略):

.../search/searchTweets/%23tweet 

和打印$_REQUEST變量時這是結果:

array(3) { ["module"]=> string(6) "search" ["action"]=> string(12) "searchTweets" ["value"]=> string(0) "" } 

回答

0

哈希標籤後面的字符串被稱爲片段標識符,它只是客戶端的URL部分。 它從未發送到服務器。

如果您的URL始終具有相同的結構,那麼您可以重寫規則而不使用最後一組(即^(.*)/(.*)),並使用JavaScript進行抽取。

如果您需要任何幫助,請告訴我,我會給您寫一個例子。

+0

是的我意識到這一點,但「價值」需要在字符串中有一個hashtag,所以我認爲傳遞它作爲%23將工作,但它顯然沒有。有什麼解決方法嗎?或者我只需要重新考慮我的代碼結構? –

+0

編碼到%23後,它對我來說效果很好,只是試過'.../aaa/bbb /%23ccc'和$ _REQUEST是'( [r1] => aaa [r2] => bbb [ r3] => #ccc )' – Arbels

+0

真的嗎?多麼奇怪,它不適合我。我現在通過解析字符串而不用在網址中加入hashtag來解決它,並且用我自己的函數手動添加它。這不是最漂亮的解決方案,但它現在起作用。 –