【发布时间】:2013-05-07 18:11:42
【问题描述】:
尝试改进我创建的自定义 codeigniter 路由正则表达式。本质上,自定义路由的目的是为格式为clients/client-slug 的客户端配置文件页面创建一个更简洁/更短的 URL,例如:clients/acme-inc。我只希望这条路由匹配,如果它们在 client-slug 段之后没有额外的段,并且如果它们的 client-slug 值不匹配与客户端控制器中的实际方法/路由相对应的任何“保留”值。目前,这是我正在使用的:
$route['clients/(?!some_method|another_method|foo|bar)(.+)'] = 'clients/index/$1';
这几乎可以正常工作,除非有一个以保留方法文本之一开头的 client-slug,即clients/food-co,因为其中包含clients/foo,因此自定义路由不匹配。所以我需要基本上有条件地允许路由包含该集合中的任何保留方法,前提是它后面跟着其他字符(不是/)。
【问题讨论】:
标签: regex codeigniter routes clean-urls