Codeigniter涉及查询的路由问题

时间:2009-11-27 23:49:47

标签: codeigniter routes uri

当URI中存在查询(后面的内容)时,我遇到了CodeIgniter路由的问题。我知道用CI中的路由替换查询是一种很好的做法,但我正在导入一个已经完成所有查询的预制留言板。这是我的路线:

$ route ['messageboard /:any'] =“messageboard / index”;

在这种情况下,任何内容都是指脚本名称。所以如果它是messageboard / admin.php,我会加载一个加载我的预制留言板脚本“admin.php”的视图。如果我做messageboard / admin.php,它的工作正常。如果我做messageboard / admin.php,它会没问题。但是,如果我将一个参数放入查询中,路由将无法正确地将用户发送到留言板控制器,而是将它们发送到404.有没有人对如何使其工作有任何想法?我会永远感激。谢谢!

3 个答案:

答案 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";