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