Yii URL规则
URL规则是yii\web\UrlRule的一个实例。当启用了美观的URL格式时, urlManager 组件使用其 rules 属性中声明的URL规则。
为了解析一个请求,URL管理器按照声明的顺序获取规则并寻找第一个规则。
步骤1 - 修改 config/web.php 文件中的 urlManager 组件。
'urlManager' => [
'showScriptName' => false,
'enablePrettyUrl' => true,
'rules' => [
'about' => 'site/about',
]
],
步骤2 − 在你的网页浏览器中输入 http://localhost:8080/about, 你将看到关于页面。
URL规则可以与查询参数关联在这个模式中 –
- ParamName - 参数名称
-
RegExp - 可选的正则表达式用于匹配参数值
假设我们声明了以下URL规则 –
[
'articles/<year:\d{4}>/<category>' => 'article/index',
'articles' => 'article/index',
'article/<id:\d+>' => 'article/view',
]
当规则用于 解析 时 –
- /index.php/articles 被解析为 article/index
- /index.php/articles/2014/php 被解析为 article/index
- /index.php/article/100 被解析为 article/view
- /index.php/articles/php 被解析为 articles/php
当规则用于 创建URL 时 –
- Url::to([‘article/index’]) 创建 /index.php/articles
-
Url::to([‘article/index’, ‘year’ => 2014, ‘category’ => ‘php’]) 创建 /index.php/articles/2014/php
-
Url::to([‘article/view’, ‘id’ => 100]) 创建 /index.php/article/100
-
Url::to([‘article/view’, ‘id’ => 100, ‘source’ => ‘ad’]) 创建 /index.php/article/100?source=ad
-
Url::to([‘article/index’, ‘category’ => ‘php’]) 创建 /index.php/article/index?category=php
要在URL中添加后缀,您应该配置 yii\web\UrlManager::$suffix 属性。
步骤3 - 修改 config/web.php 文件中的 urlComponent 。
'urlManager' => [
'showScriptName' => false,
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'suffix' => '.html'
],
步骤4 - 在Web浏览器的地址栏中输入地址 http://localhost:8080/site/contact.html ,您将在屏幕上看到以下内容。注意 html 后缀。