Yii - URL 规则


如果yii\web\UrlRule ,则 URL 规则是一个实例。当启用漂亮 URL 格式时,urlManager 组件使用在其规则属性中声明URL 规则。

为了解析请求,URL 管理器按照声明的顺序获取规则并查找第一个规则。

步骤 1 - 修改config/web.php文件中的urlManager组件。

'urlManager' => [
   'showScriptName' => false,
   'enablePrettyUrl' => true,
   'rules' => [
      'about' => 'site/about',
   ]
],

步骤 2 - 转到您的网络浏览器http://localhost:8080/about,您将看到关于页面。

修改urlManager组件

URL 规则可以与此模式中的查询参数关联 -

<ParamName:RegExp>,其中 -

  • 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 被解析为文章/视图
  • /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后缀。

注意 HTML 后缀