我有这条路线:
$route["((parameter|type|something)-([0-9]+)\/)+"] = 'somecontroller';
所以当我用这个测试网址时:
www.somewebsite.com/parameter-1/
codeigniter返回页面未找到错误。但我在这里测试了正则表达式:
它似乎工作得很好。
编辑:我也试过把前导/尾随/'s:
$route["/((parameter|type|something)-([0-9]+)\/)+/"] = 'somecontroller';
编辑:好的,感谢Omega(用户),这是因为斜杠字符(/)在codeigniter的路由解析引擎中具有特殊的优先级或效果。因此,如果它是正则表达式的一部分,则表示它可以显示多少次,不确定原因,因此您可以通过这些运算符跟踪它{}或?或*或+,或任何其他处理前面的表达式出现次数的运算符。那么以上路线,用?运营商的工作:
$route["/((parameter|type|something)-([0-9]+)\/)+/?"] = 'somecontroller';
这显然是一个特定于代码的问题。
答案 0 :(得分:1)
尝试将?
添加到模式>> ((parameter|type|something)-([0-9]+)\/?)+