【问题标题】:Parenthesis issue in codeigniter urlcodeigniter url中的括号问题
【发布时间】:2013-07-01 00:25:40
【问题描述】:

我的项目网址中很少包含括号,它是一个 codeigniter 项目。不幸的是,我无法删除它们。 所以我在我的 config 文件夹的 route.php 中写了以下规则:

$route['abc-(def)'] = 'locations/index/12492';
$route['abc-%28def%29'] = 'locations/index/12492';
$route['404_override'] = 'home/pagenotfoundhandler';

因此,当我尝试访问 URL http://mydomain.com/abc-(def)http://mydomain.com/abc-%28def%29 时,它会将我带到 home/pagenotfoundhandler,而它应该将我带到位置控制器和索引方法。请建议如何处理codeigniter中的括号。

【问题讨论】:

    标签: php codeigniter url routes


    【解决方案1】:

    括号是正则表达式模式的一部分,因此如果您想将它们用作 ascii 字符,请尝试将它们转义,如下所示:

    $route['abc-\(def\)'] = 'locations/index/12492';
    

    还有一个值得一看的地方:

    在 config.php 中应该为您的 codeigniter 系统设置允许的 uri 字符。检查那里是否允许括号。

    或者,您可以禁用 $config["csrf_protection"] 以跳过 url xss 清理。

    【讨论】:

      【解决方案2】:

      我猜那是因为找不到应该重定向到locations/index/12492 的页面http://mydomain.com/abc-(def)!所以会发生404 - Page not Found 错误,当然正如您所定义的那样,它会将您带到home/pagenotfoundhandler!确保路径存在,或者你为什么不给出完整的路径来看看它是否有效!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-06
        • 2018-01-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多