2010-09-03 22 views
3

我在使用url時出現問號問題。url中的問號(Apache)

例如:我有url test.com/controller/action/part_1%3Fpart_2(其中%3F是url編碼的問號),並且使用此重寫規則:RewriteRule .* index.php/$0 [PT],它應該按原樣傳遞給我使用的框架(Kohana)。至少我是這麼想的。

問題是,URL編碼問號後的所有內容都被當作GET參數處理,所以Kohana只收到part_1,我可以看到在$_GET中有一個數組密鑰part_2。我認爲這是Web服務器問題(Apache 2.2)。

我應該怎麼做,所以Apache不會將URL編碼的問號作爲GET參數指示器處理?

回答

0

問號是reserved characters之一,用作PATH和QUERY組件之間的分隔符。所以,你不能將它用作URI路徑的一部分。

+2

如果它被轉義,可以使用它 - 「如果URI組件的數據與保留目的衝突,那麼衝突數據必須在形成URI之前轉義。」 (從你給的鏈接)。你也可以在這裏查看http://www.blooberry.com/indexdot/html/topics/urlencoding.htm關於網址編碼。 在我的例子中,問號IS被轉義(url編碼)。 – egis 2010-09-03 18:31:37