我在使用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
任何人都可以解释我对表达方式做错了吗?感谢
答案 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\-]
。 \
字符转义连字符,告诉表达引擎它不是范围运算符。