Yii – Rules of URL


Yii – Rules of URL


”;


A URL rule is an instance if yiiwebUrlRule. The urlManager components uses the URL rules declared in its rules property when the pretty URL format is enabled.

To parse a request, the URL manager obtains the rules in the order they are declared and looks for the first rule.

Step 1 − Modify the urlManager component in the config/web.php file.

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

Step 2 − Go to your web browser at http://localhost:8080/about, you will see the about page.

Modified urlManager Component

A URL rule can be associated with query parameters in this pattern −

<ParamName:RegExp>, where −

  • ParamName − The parameter name

  • RegExp − An optional regular expression used to match parameter values

Suppose, we have declared the following URL rules −

[
   ''articles/<year:d{4}>/<category>'' => ''article/index'',
   ''articles'' => ''article/index'',
   ''article/<id:d+>'' => ''article/view'',
]

When the rules are used for parsing

  • /index.php/articles is parsed into the article/index
  • /index.php/articles/2014/php is parsed into the article/index
  • /index.php/article/100 is parsed into the article/view
  • /index.php/articles/php is parsed into articles/php

When the rules are used for creating URLs

  • Url::to([”article/index”]) creates /index.php/articles

  • Url::to([”article/index”, ”year” => 2014, ”category” => ”php”]) creates /index.php/articles/2014/php

  • Url::to([”article/view”, ”id” => 100]) creates /index.php/article/100

  • Url::to([”article/view”, ”id” => 100, ”source” => ”ad”]) creates /index.php/article/100?source=ad

  • Url::to([”article/index”, ”category” => ”php”]) creates /index.php/article/index?category=php

To add a suffix to the URL, you should configure the yiiwebUrlManager::$suffix property.

Step 3 − Modify the urlComponent in the config/web.php file.

''urlManager'' => [
   ''showScriptName'' => false,
   ''enablePrettyUrl'' => true,
   ''enableStrictParsing'' => true,
   ''suffix'' => ''.html''
],

Step 4 − Type the address http://localhost:8080/site/contact.html in the address bar of the web browser and you will see the following on your screen. Notice the html suffix.

Notice HTML Suffix

Advertisements

”;

Leave a Reply

Your email address will not be published. Required fields are marked *