Sử dụng UrlManager:
Được xây dựng trong quản lý URL trong Yii là một thành phần ứng dụng có thể được cấu hình trong tập tin được bảo vệ / config / main.php. Hãy mở tập tin đó và thêm một tuyên bố thành phần URL mới quản lý mảng các thành phần:
'urlManager' => array ( 'urlFormat' => 'đường dẫn', ),
Miễn là chúng ta gắn bó với urlManager nó mặc định và tên, chúng tôi không cần phải xác định lớp của các thành phần bởi vì nó là trước khi kê khai để được CUrlManager.php trong lớp khuôn khổ CWebApplication.php.
URL của chúng ta đang tìm kiếm tốt hơn, nhưng chúng ta vẫn có kịch bản nhập cảnh, index.php, quy định và chúng ta không có thể nối thêm hậu tố. Xml vào cuối URL cấp dữ liệu của chúng tôi. Vì vậy, chúng ta sẽ ẩn index.php như là một phần của URL, và cũng có thể thiết lập các yêu cầu định tuyến để hiểu rằng một yêu cầu cho commentfeed.xml thực sự có nghĩa là một yêu cầu cho actionFeed () trong lớp CommentController.php. Chúng ta hãy thực sự giải quyết vấn đề thứ hai đầu tiên.
Cấu Hình các quy tắc định tuyến (route).
Quản lý URL Yii cho phép chúng ta xác định quy tắc để xác định URL được phân tích cú pháp và tạo ra. Một nguyên tắc bao gồm xác định một tuyến đường và một mô hình. Mô hình này được sử dụng để phù hợp với trên một phần thông tin đường dẫn URL để xác định quy tắc được sử dụng để phân tích hoặc tạo ra các URL. Các mô hình có thể chứa các thông số được đặt tên bằng cách sử dụng các ParamName cú pháp: RegExp. Khi phân tích một URL, một quy tắc phù hợp sẽ trích xuất các thông số này được đặt tên từ các thông tin đường dẫn và đặt chúng vào biến $ _GET. Khi một URL được tạo ra bởi các ứng dụng, một quy tắc phù hợp sẽ trích xuất các thông số được đặt tên từ $ _GET và
đặt chúng vào phần thông tin đường dẫn URL được tạo ra. Nếu một mô hình kết thúc với'/*', nó có nghĩa là các tham số thêm GET có thể được nối thêm vào phần thông tin đường dẫn của URL.
Ta định tuyến vào UrlManager như sau:
'urlManager'=>array( 'urlFormat'=>'path', 'rules'=>array( '<controller:\w+>/<id:\d+>'=>'<controller>/view', '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', ), ),
Loại bỏ các script từ URL
Bây giờ chúng ta chỉ cần loại bỏ index.php từ các URL. Điều này được thực hiện theo hai bước: