Home > Article > PHP Framework > Routing configuration in Yii framework: URL beautification
With the rapid development of the Internet, people's experience in using websites is getting better and better. Among them, the form of URL has gradually become an important factor for users to judge the quality of the website. For URL beautification, the Yii framework provides a variety of routing configuration solutions. This article will focus on routing configuration in the Yii framework and how to implement URL beautification.
1. Basics of routing configuration
Routing refers to mapping the requested URL address to specific controllers and methods to achieve specific processing of the request. In the Yii framework, routing configuration is completed through the URL manager (UrlManager). The URL manager is in the application's configuration file config folder, as follows:
'components' => [ 'urlManager' => [ 'class' => 'yiiwebUrlManager', 'enablePrettyUrl' => true, 'showScriptName' => false, 'rules' => [ // ... ], ], ],
Among them, enablePrettyUrl
indicates whether to enable beautified URLs, and it is recommended to set it to true
; showScriptName
indicates whether to display the script file name (such as index.php) in the URL. It is also recommended to set it to false
to avoid affecting the beauty of the URL.
2. Static routing
Static routing means that a specific URL address can be directly mapped to a controller and method. For example, we can statically convert a URL address such as index.php?r=site/about
to about
, and directly enter http://yourdomain.com/ when accessing Just about
.
In the Yii framework, the method to implement static routing is as follows:
'rules' => [ 'about' => 'site/about', ],
Here about
represents the mapped URL address, site/about
is Represents specific controllers and methods.
3. Dynamic routing
Dynamic routing refers to mapping URL addresses with parameters to controllers and methods, and passing data through parameters. For example, we can dynamically convert a URL address such as index.php?r=site/view&id=1
to view/1
, and directly enter http:// when accessing. yourdomain.com/view/1
is enough.
In the Yii framework, the method to implement dynamic routing is as follows:
'rules' => [ 'view/<id:d+>' => 'site/view', ],
The view/1ae845aa4984539391bc1a58ac88f77f
here represents the mapped URL address, whereid
is the parameter name, d
is a regular expression matching numbers, site/view
represents the specific controller and method.
4. Advanced routing
Advanced routing is an extension of static and dynamic routing, which can achieve more complex URL mapping. For example, we can convert a URL address such as index.php?r=user/profile
to profile/username
, and directly enter http://yourdomain.com when accessing /profile/admin
is enough.
In the Yii framework, the method to implement advanced routing is as follows:
'rules' => [ [ 'class' => 'yiiwebUrlRule', 'pattern' => 'profile/<username:w+>', 'route' => 'user/profile', 'suffix' => '', ], ],
The 'class' => 'yiiwebUrlRule'
means that we are using advanced routing. 'pattern' => 'profile/6e0dc223abbbf8f488db15a7a4fa2ebb'
represents the matching rule of the URL address, where 6e0dc223abbbf8f488db15a7a4fa2ebb
represents the parameter name and regular expression , 'route' => 'user/profile'
represents the specific controller and method, 'suffix' => ''
represents the additional characters at the end of the URL address.
Summary
Through the above introduction, we can understand the basic methods of routing configuration in the Yii framework and the differences therein. However, when configuring routing, you need to pay attention to the beauty and legibility of the URL address, and also make good arrangements for the underlying controllers and methods. Only by achieving a balance between the two aspects can the URL address of the website be better mapped to specific controllers and methods in different scenarios, thereby improving the website experience.
The above is the detailed content of Routing configuration in Yii framework: URL beautification. For more information, please follow other related articles on the PHP Chinese website!