我正在尝试使用Yii 2's
UrlManager
设置规则,我知道您可以在要传递的参数中使用Regex,例如:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [
'foo/<id:\d+>/?' => 'foo/view',
],
],
由于/
,以上工作正常,甚至可选?
。
但是,我想知道如果我想在规则中的其他地方使用RegEx,但是我不需要它作为参数传递.....例如。
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [
'foo/([0-9a-zA-Z\-]+)\.<id:\d+>/?' => 'foo/view',
],
],
以上不起作用。基本上我想支持URL,例如:
foo/some-name-123-end.99/
foo/some-name-123-end.99
然后99
(可以是任意数字)将作为id
变量传递。
...或者我的RegEx有什么问题吗?
可以这样做吗?
答案 0 :(得分:7)
根据docs,您只能为参数指定正则表达式。例如:
'foo/<tmpParam:[0-9a-zA-Z\-]+>.<id:\d+>/?' => 'foo/view',