我有问题。 我有路线:
$router->add('/news/{alias}(/?)', array(
'module' => 'frontend',
'controller' => 'news',
'action' => 'view',
'news_id' => 1,
'lang' => 'md',))->setName('news_view_short_e');
并且:
$router->add('/news/index/...
我如何查看{alias}是否包含“index”?
/news/{alias:(?!index)+}(/?)
不工作。 请帮忙。
我的链接:
site.com/news/index/ - 所有新闻
site.com/news/anlinter/ - 类别
site.com/news/231213-newsfriendly-url/ - 新闻视图
答案 0 :(得分:0)
此网站非常有助于理解和测试您的正则表达式:https://regexr.com/
将(?!index)+
的正则表放在那里会告诉您存在“否定前瞻”,“指定主表达式后无法匹配的组(如果匹配,则结果将被丢弃)。”
问题在于您的?!
。我在本地机器上进行了一些快速测试,在那里我删除了?!
,并且路线得到了正确匹配。
答案 1 :(得分:0)
测试,/news/{alias:((?!index).)+
这对我有用。