yii2 - Yii2 UrlManager 字符串规则
问题描述
我正在尝试创建一个简单的规则 url,但我无法让它工作。
我想要以下规则:
mysite.com/[username]
要去
mysite.com/kit/page?id=[username]
这可能吗?。现在我只有一条规则,但我也需要遵守这条规则
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'' => 'site/index',
],
],
解决方案
如果我理解正确,您是说您有一个现有页面mysite.com/kit/page?id=[username]
,如果您在地址栏中输入 URL,则应该显示该页面mysite.com/[username]
,如果是,那么您可以更新urlManager
以下内容
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'/' => 'site/index',
'<id:\w+>' => 'kit/page'
]
]
理想情况下,我会使用它mysite.com/kit/[username]
来避免与以某种方式与任何用户名匹配的任何其他控制器发生冲突,并使用'kit/<id:\w+>' => 'kit/page'
.
注意:\w+
匹配任何单词字符(等于[a-zA-Z0-9_]
),所以如果您的用户名可以允许任何其他字符,您可能必须更新模式,例如允许-
您应该将规则更改为'<id:[\w\-]+>' => 'kit/page'
推荐阅读
- swift - 如何优雅地找到 SKSpriteNode 的旋转
- python - 如何使用python浏览?
- c# - WPF DataGrid 单元格前景绑定不起作用
- c# - 如果值大于零,RDLC 报告更改字体颜色
- spring-boot - 有什么区别:CamelContext vs ExtendedCamelContext vs SpringCamelContext?
- python - AttributeError:模块'tensorflow'在Keras Tensorflow中没有属性'python'
- sql - 连接 10 行的更高效的 SQL 自连接?
- css - 如何在 SASS 中链接 CSS 选择器?
- mysql - 根据另一个表的每条记录计算 MySQL 表中的记录
- csv - 将哈希值保存在特定标题下的 csv 文件中