当有一个查询时,我在使用CodeIgniter路由时遇到了一些问题(在?之后的东西)在URI中。我知道将查询替换为CI中的路由是一种很好的做法,但我正在导入一个预制的留言板,该留言板已经完成了查询的所有操作。这是我的路线:
$route'messageboard/:any‘= "messageboard/index";
在这种情况下,Any指的是脚本名称。因此,如果它是messageboard/admin.php,我让它加载一个视图,该视图加载我预制的留言板脚本"admin.php“。如果我使用messageboard/admin.php,它就能正常工作。如果我使用messageboard/admin.php?但是,如果我在查询中输入一个参数,路由将不会正确地将用户发送到留言板控制器,而是将他们发送到404。有没有人有任何关于如何让它工作的想法?我将永远心存感激。谢谢!
发布于 2009-11-28 11:01:04
好了伙计们我解决了。我需要改变三件事。第一个是mtvee的建议,让它读取查询字符串。第二个你需要修改配置文件中的$ config‘’permitted_uri_chars‘,使其包含一个等号,因为它在启动时是禁用的,并且所有的查询字符串都将是for ?a=34或类似的字符。第三个是你需要转到$config‘’uri_protocol‘并把它从AUTO改为PATH_INFO。一旦我这样做了,它就起作用了。
发布于 2009-11-28 09:22:32
我相信CI是不会跳出盒子的。在此处查看启用查询字符串http://ellislab.com/codeigniter/user-guide/general/urls.html
发布于 2009-11-28 10:13:38
我敢肯定语法是:
$route['messageboard/(:any)'] = "messageboard/index"; //<-- notice brackets
而不是
$route['messageboard/:any'] = "messageboard/index";
https://stackoverflow.com/questions/1811037
复制相似问题