Yii2 UrlManager打破期间

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Yii2 UrlManager打破期间相关的知识,希望对你有一定的参考价值。

我目前正在使用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>',
     ],
],
答案

你使用正则表达式与令牌w+匹配任何单词字符(等于[a-zA-Z0-9_]),不包括句号或.

所以把它改成[w.]+,现在你的规则就是

me/<id:[w.]+>' => 'kit/page',
另一答案

而不是 w +,放[-a-zA-Z0-9 _。] +

例:

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

以上是关于Yii2 UrlManager打破期间的主要内容,如果未能解决你的问题,请参考以下文章

Yii2:如何使用UrlManager的分页构建正确的模式?

yii2 url 美化参数

yii2 url 美化参数

yii2.0如何优化路由

yii2深入理解之内核解析

Yii 2 静态页面