0

我有这条路线:

$route["((parameter|type|something)-([0-9]+)\/)+"] = 'somecontroller';

所以当我用这个测试网址时:

www.somewebsite.com/parameter-1/

codeigniter 返回页面未找到错误。但我在这里测试了正则表达式:

http://rubular.com/

它似乎工作得很好。

编辑:我也试过把前导/尾随/的:

$route["/((parameter|type|something)-([0-9]+)\/)+/"] = 'somecontroller';

编辑:好的,感谢 Omega(user),这是因为斜杠字符 (/) 在 codeigniter 的路由解析引擎中具有特殊的优先级或效果。因此,如果它是正则表达式的一部分,你已经表达了它可以出现多少次,不知道为什么,所以你可以用这些运算符 {} 或 ? 或 * 或 +,或任何其他处理前面表达式出现次数的运算符。所以上面的路线,与?操作员工作:

$route["/((parameter|type|something)-([0-9]+)\/)+/?"] = 'somecontroller';

这显然是一个代码点火器特定的问题。

4

1 回答 1

1

尝试添加?到模式>>((parameter|type|something)-([0-9]+)\/?)+

于 2012-09-25T00:54:22.787 回答