reg表达式问题&在Codeigniter的路线

时间:2011-11-17 16:16:12

标签: php regex codeigniter routing codeigniter-2

我在使用Codeigniter中的路线和我的表达式

时遇到了问题

我有一个如下的网址(针对优惠页面):

www.site.com/company/offers/view/newsarticle/219

和如下路线:

$route['([a-z0-9_-]+)/offers/view/([a-z0-9]+)/([0-9]+)'] = "offers/view/$1/$2/$3";

我有上面的路由设置,所以如果应该去商品控制器和视图功能并传递3个参数(公司,新闻文章,219)

如果第4个uri细分包含和' - '它打破了,给了我一个404页面 例如

这有效

www.site.com/company/offers/view/newsarticle/219

但这不是

www.site.com/company/offers/view/news-article/219

任何人都可以解释我对表达方式做错了吗?感谢

1 个答案:

答案 0 :(得分:2)

您的表达式不允许使用连字符

([a-z0-9_-]+)/offers/view/([a-z0-9]+)/([0-9]+)

应该是

([a-z0-9_-]+)/offers/view/([a-z0-9\-]+)/([0-9]+)

请注意\-中的[a-z0-9\-]\字符转义连字符,告诉表达引擎它不是范围运算符。