2011-03-03 103 views
0

我有以下路徑規則在我的config/routes.php文件設置:笨路由與編碼PARAMS

$route["add/url/(:any)"] = "add/url/$1/$2/$3";

除非PARAMS已編碼值,所以下面的作品也能正常工作:

http://site.com/add/url/true/www.google.co.uk/Google/

但這並不:

http://site.com/add/url/true/http%3A%2F%2Fwww.google.co.uk/Google/

它並不事件似乎得到控制器功能的頁面只是說「未找到對象!」。我該怎麼做?

+0

問題是下到編碼/。最後,我決定在控制器方法中對參數進行base64解碼。 – xylar 2011-03-05 15:14:58

+0

另一種方式是通過傳遞值作爲查詢字符串 – xylar 2011-03-08 16:23:03

回答

0

兩種解決方案,我發現:

  1. BASE64在控制器方法的PARAMS和解碼(確保+,=,/被取代的)
  2. 通過傳遞值作爲查詢字符串
0

試試這個

$route["add/url/[A-Za-z0-9/%]"] = "add/url/$1/$2/$3"; 

$route["add/url/([\w][%])"] = "add/url/$1/$2/$3"; 

我不是第二個相當肯定,但第一個代碼工作。

請通過文章Regular Expression在維基百科上的正則表達式進一步信息。

+0

遺憾的是沒有工作,我無法找到一個正則表達式的解決方案 – xylar 2011-03-05 15:12:24