Yii2 UrlManager中断期间

时间:2019-04-04 18:05:14

标签: yii2

我当前正在使用yii2 urlManager创建漂亮的URL。它接收一个参数,然后根据该参数查找用户。不幸的是,如果参数包含一个句点,它将根本无法运行并重定向到404页面。

所以

mysite.com/me/jbroad 

工作正常,但是

mysite.com/me/j.broad 

返回404页面。

这是我的网址管理器代码

'urlManager' => [
     'enablePrettyUrl' => true,
     'showScriptName' => false,
     'rules' => [
         '' => 'site/index',
         'me/<id:\w+>' => 'kit/page',
         'generate/<id:\w+>' => 'kit/generate',
          '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
     ],
],

2 个答案:

答案 0 :(得分:3)

您正在使用带有令牌\w+的正则表达式,该令牌与任何单词字符(等于[a-zA-Z0-9_])匹配,并且不包含句点或.

因此将其更改为[\w\.]+,现在您的规则将是

me/<id:[\w\.]+>' => 'kit/page',

答案 1 :(得分:0)

将[-a-zA-Z0-9 _。] +代替\ w +

示例:

    'me/<id:[-a-zA-Z0-9_.]+>' => 'kit/page',