【问题标题】:Trouble with Codeigniter Routes involving a query涉及查询的 Codeigniter 路由问题
【发布时间】:2009-11-27 23:49:46
【问题描述】:

当 URI 中有查询(?后面的东西)时,我在使用 CodeIgniter 路由时遇到了一点问题。我知道用 CI 中的路由替换查询是一种很好的做法,但是我正在导入一个预制的留言板,该留言板已经对查询进行了所有操作。这是我的路线:

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

在这种情况下,任何指的是脚本名称。所以如果它是messageboard/admin.php,我让它加载一个视图来加载我的预制留言板的脚本“admin.php”。如果我做messageboard/admin.php,它工作得很好。如果我做 messageboard/admin.php? 就可以了。但是,如果我将参数放入查询中,路由将不会正确地将用户发送到留言板控制器,而是将它们发送到 404。有人对如何使这项工作有任何想法吗?我将永远感激不尽。谢谢!

【问题讨论】:

    标签: codeigniter routes uri


    【解决方案1】:

    好的,伙计们,我解决了。我需要改变三件事。第一个是 mtvee 的建议,它可以读取查询字符串。第二个,您要更改配置文件中的 $config['permitted_uri_chars'] 以包含等号,因为它一开始是禁用的,并且所有查询字符串都是 for ?a=34 或类似的那。第三个是您需要转到 $config['uri_protocol'] 并将其从 AUTO 更改为 PATH_INFO。一旦我做了这些,它就起作用了。

    【讨论】:

    • 在 CI 2.0 中,只需将 $config['uri_protocol'] 从 AUTO 更改为 PATH_INFO
    【解决方案2】:

    我确定语法是:

    $route['messageboard/(:any)'] = "messageboard/index"; //<-- notice brackets
    

    而不是

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

    【讨论】:

      【解决方案3】:

      我相信 CI 不会开箱即用。在此处查看启用查询字符串http://ellislab.com/codeigniter/user-guide/general/urls.html

      【讨论】:

        猜你喜欢
        • 2019-01-08
        • 1970-01-01
        • 1970-01-01
        • 2011-09-16
        • 2012-04-27
        • 1970-01-01
        • 1970-01-01
        • 2016-07-26
        相关资源
        最近更新 更多