Codeigniter路由与编码参数

时间:2011-03-03 21:02:14

标签: php codeigniter routes

我在config / routes.php中设置了以下路由规则:

$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/

事件似乎没有到达控制器功能页面只是说'找不到对象!'。我该怎么办?

2 个答案:

答案 0 :(得分:0)

试试这个

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

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

我不太确定第二个,但第一个代码有效。

请仔细阅读维基百科中的文章Regular Expression,了解有关正则表达式的更多信息。

答案 1 :(得分:0)

我找到了两个解决方案:

  1. base64 params并在控制器方法中解码(确保+,=,/被替换)
  2. 将值作为查询字符串传递