当URI中存在查询(后面的内容)时,我遇到了CodeIgniter路由的问题。我知道用CI中的路由替换查询是一种很好的做法,但我正在导入一个已经完成所有查询的预制留言板。这是我的路线:
$ route ['messageboard /:any'] =“messageboard / index”;
在这种情况下,任何内容都是指脚本名称。所以如果它是messageboard / admin.php,我会加载一个加载我的预制留言板脚本“admin.php”的视图。如果我做messageboard / admin.php,它的工作正常。如果我做messageboard / admin.php,它会没问题。但是,如果我将一个参数放入查询中,路由将无法正确地将用户发送到留言板控制器,而是将它们发送到404.有没有人对如何使其工作有任何想法?我会永远感激。谢谢!
答案 0 :(得分:1)
好的伙计们,我解决了。我需要改变三件事。第一个是mtvee的建议,它允许它读取查询字符串。第二个你想要在配置文件中更改$ config ['allowed_uri_chars']以包含一个等号,因为它开始禁用,所有查询字符串都是for?a = 34或类似的东西那。第三个是你需要转到$ config ['uri_protocol']并将其从AUTO更改为PATH_INFO。一旦我做了这些,它就有用了。
答案 1 :(得分:0)
我相信CI不会开箱即用。在此处http://ellislab.com/codeigniter/user-guide/general/urls.html
查看启用查询字符串答案 2 :(得分:0)
我确定语法是:
$route['messageboard/(:any)'] = "messageboard/index"; //<-- notice brackets
而不是
$route['messageboard/:any'] = "messageboard/index";