codeigniter url中的括号问题

时间:2013-07-03 10:41:50

标签: php codeigniter url routes

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

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

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

2 个答案:

答案 0 :(得分:0)

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

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

还有一个地方可以看:

在configignph系统中,config.php中应该有一个允许的uri字符设置。检查是否允许括号。

或者,您可以停用$config["csrf_protection"]以跳过网址xss清理。

答案 1 :(得分:0)

嗯,我想这是因为无法找到应该重定向到http://mydomain.com/abc-(def)的网页locations/index/12492!因此发生了404 - Page not Found错误,当然,正如您所定义的那样,您将home/pagenotfoundhandler转移!确保路径存在,甚至为什么不提供完整的路径来查看它是否有效!