本文介绍了Yii2 UrlManager 在期间中断的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我目前正在使用 yii2 urlManager
创建一个漂亮的 URL.它接收一个参数,然后根据它查找用户.不幸的是,如果参数包含句点,它根本不会运行并重定向到 404
页面.
I am currently using yii2 urlManager
to create a pretty URL. It receives a parameter and then looks up users based on it. Unfortunately, if the parameter contains a period, it won't run at all and redirects to a 404
page.
所以,
mysite.com/me/jbroad
完美运行,但是
mysite.com/me/j.broad
返回 404 页面.
这是我的网址管理器代码
Here is my url manager code
'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_]
) 并且不包括句点或 .
.
You are using the regex with token \w+
which matches any word character (equal to [a-zA-Z0-9_]
) and does not include a period or .
.
因此将其更改为 [\w\.]+
并且您的规则现在将是
so change it to [\w\.]+
and your rule will now be
me/<id:[\w\.]+>' => 'kit/page',
这篇关于Yii2 UrlManager 在期间中断的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!