2011-03-03 78 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