Yii - Định dạng URL
Khi một ứng dụng Yii xử lý một URL được yêu cầu, trước tiên, nó sẽ phân tích URL đó thành một tuyến đường. Sau đó, để xử lý yêu cầu, tuyến đường này được sử dụng để khởi tạo hành động bộ điều khiển tương ứng. Quá trình này được gọi làrouting. Quá trình ngược lại được gọi là tạo URL. CácurlManagerthành phần ứng dụng chịu trách nhiệm định tuyến và tạo URL. Nó cung cấp hai phương pháp -
parseRequest() - Phân tích một yêu cầu thành một tuyến đường.
createUrl() - Tạo một URL từ một tuyến đường nhất định.
Định dạng URL
Các urlManager thành phần ứng dụng hỗ trợ hai định dạng URL -
Định dạng mặc định sử dụng tham số truy vấn r để đại diện cho tuyến đường. Ví dụ: URL/index.php?r=news/view&id=5 đại diện cho tuyến đường news/view và id tham số truy vấn 5.
Định dạng URL đẹp sử dụng đường dẫn bổ sung với tên tập lệnh mục nhập. Ví dụ, trong ví dụ trước, định dạng đẹp sẽ là/index.php/news/view/5. Để sử dụng định dạng này, bạn cần đặt các quy tắc URL.
Để bật định dạng URL đẹp và ẩn tên tập lệnh mục nhập, hãy làm theo các bước sau:
Step 1 - Sửa đổi config/web.php tập tin theo cách sau.
<?php
$params = require(__DIR__ . '/params.php'); $config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'components' => [
'request' => [
// !!! insert a secret key in the following (if it is empty) -
//this is required by cookie validation
'cookieValidationKey' => 'ymoaYrebZHa8gURuolioHGlK8fLXCKjO',
],
'cache' => [
'class' => 'yii\caching\FileCache',
],
'user' => [
'identityClass' => 'app\models\User',
'enableAutoLogin' => true,
],
'errorHandler' => [
'errorAction' => 'site/error',
],
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => true,
],
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
],
],
],
'urlManager' => [
'showScriptName' => false,
'enablePrettyUrl' => true
],
'db' => require(__DIR__ . '/db.php'),
],
'modules' => [
'hello' => [
'class' => 'app\modules\hello\Hello',
],
],
'params' => $params, ]; if (YII_ENV_DEV) { // configuration adjustments for 'dev' environment $config['bootstrap'][] = 'debug';
$config['modules']['debug'] = [ 'class' => 'yii\debug\Module', ]; $config['bootstrap'][] = 'gii';
$config['modules']['gii'] = [ 'class' => 'yii\gii\Module', ]; } return $config;
?>
Chúng tôi vừa kích hoạt pretty URL format và đã tắt tên tập lệnh mục nhập.
Step 2 - Bây giờ, nếu bạn gõ http://localhost:8080/site/about trên thanh địa chỉ của trình duyệt web, bạn sẽ thấy URL đẹp đang hoạt động.
Lưu ý rằng URL không còn nữa http://localhost:8080/index.php?r=site/about.