2013-10-19 109 views
0

我正在開發一個客戶端項目,我正在嘗試改進將變量從url傳遞給php的過程。該項目的URL結構如下所示:URL中特殊字符的問題

http://xyz.com -> Domain 
http://xyz.com/folder -> Folder/File 
http://xyz.com/doesnotexist -> Folder/File does not exist 
          -> Pass it as a parameter to index.php Script 

htaccess的規則採取這種參數「doesnotexist」,使之在一個index.php的$ _GET變量可用。

該變量在javascript中使用encodeURIComponent進行編碼,該url可以在瀏覽器中調用並使用urldecode在php中解碼。這工作完美。

現在到我的問題:當傳遞的變量包含特殊字符如斜槓「/」或符號「&」它不再工作,因爲瀏覽器認爲他正在尋找一個子目錄。例如變量:「does/notexist」 - >瀏覽器嘗試打開http://xyz.com/does/notexist。目前,我正在用編碼之前的url替換像其他字符一樣的斜槓。所以我用「;」替換「/」,用「;」替換爲「&」,對它進行編碼,一切都很好。在我的PHP腳本中,我將它解碼並用「/」和「;」替換「,」與「&」等等。這有效,但真的很醜,所以我正在尋找一種更好的方式來做到這一點。

初始url結構不能改變。有誰知道更好的方法來做到這一點?我被困在這裏。一個想法是base_encode整個url參數,但這不是我想要的方式,因爲url應該是可讀的。

+0

您將需要一個.htacces文件做一些URL重寫,這將使這很容易 –

回答