我正在尝试使用Yii 2's
UrlManager
来设置规则,我知道您可以在要传递的参数中使用正则表达式,例如:
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'enableStrictParsing' => false,
'rules' => [
'foo/<id:'d+>/?' => 'foo/view',
],
],
以上工作正常,即使是可选的/
,因为?
.
想知道如果我想在规则中的其他地方使用正则表达式怎么办,但是我不需要它作为参数传递......如。
'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
变量传递。
。还是我的正则表达式有问题?
这能做到吗?
根据文档,您只能为参数指定正则表达式。例:
'foo/<tmpParam:[0-9a-zA-Z'-]+>.<id:'d+>/?' => 'foo/view',