0

我的项目网址很少包含括号,它是一个 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中的括号。

4

2 回答 2

1

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

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

还有一个地方可以看:

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

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

于 2013-07-03T10:44:10.707 回答
0

好吧,我猜那是因为找不到http://mydomain.com/abc-(def)应该重定向到的页面!locations/index/12492所以404 - Page not Found发生了一个错误,当然正如你所定义的那样,你会去home/pagenotfoundhandler!确保路径存在,甚至为什么不提供完整路径以查看它是否有效!

于 2013-07-03T10:46:47.977 回答