Yii - URL 规则

  • 简述

    如果yii\web\UrlRule ,则 URL 规则是一个实例。当启用漂亮的 URL 格式时,urlManager组件使用在其rules属性中声明的 URL 规则。
    为了解析请求,URL 管理器按照声明的顺序获取规则并查找第一条规则。
    第 1 步 - 修改config/web.php文件中的urlManager组件。
    
    'urlManager' => [
       'showScriptName' => false,
       'enablePrettyUrl' => true,
       'rules' => [
          'about' => 'site/about',
       ]
    ],
    
    第 2 步- 在http://localhost:8080/about访问您的网络浏览器,您将看到 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 被解析成文章/索引
    • /index.php/articles/2014/php 被解析成文章/索引
    • /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 后缀