CodeIgnitor: URL


Đăng ký nhận thông báo về những video mới nhất

Trong phần này chúng ta sẽ tìm hiểu về cách CI xử lý URL để gọi các controller, method.

Mặc định, URL của CI được thiết kế thân thiện với các máy tìm kiếm, tối ưu SEO bằng cách sử dụng các phân khúc (gọi là segment) thay vì sử dụng URL kiểu truyền thống (query string)

Bạn có thể xem một ví dụ về cách mà CI thiết kế URL:

example.com/news/article/my_article

Tuy nhiên, kiểu URL truyền thống (query string) các bạn cũng có thể sử dụng bằng cách cấu hình trong file application/config/config.php như sau:

$config['enable_query_strings'] = TRUE;

Bây gi ta s phân tích URL sau:

example.com/index.php/class/function/ID

Với URL trên, ta có ba segment là class, functionID. Trong đó:

- Segment class sẽ được CI gọi tới controller tên class (class cũng chính là một lớp).

- Segment function được CI gọi tới phương thc tên function của lớp class ở trên.

- Segment ID được CI hiểu như là 1 biến của phương thức function (Bạn cũng có thể truyền vào nhiều biến).

Để làm việc với các segment của URL, CI đã xây dựng sẳn các helper giúp bạn làm việc với các URI segment 1 cách dễ dàng, vì vậy bạn yên tâm về cách thiết kế URL này của CI.

Loại bỏ index.php

Với URL trên, chúng ta thấy sự xuất hiện của index.php, bạn cũng có thể bỏ index.php bằng cách sử dụng .htaccess (chỉ hoạt động trên server Linux). Code .htaccess để loại bỏ index.php như sau:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Như vậy, sau khi sử dụng .htaccess ta sẽ có URL thân thiện sau:

example.com/class/function/ID

Thêm phần mở rộng cho URL

Bạn thường thấy một số website có đường URL như sau:

codeigniter.com/user_guide/general/urls.html (Phần đuôi .html).

CI cũng có thể làm được như vậy chỉ với 1 cấu hình đơn giản trong file application/config/config.php:

$config['url_suffix'] = '.html';

lúc đó URL của chúng ta sẽ là:

example.com/class/function/ID.html

Kích hoạt query string

Trong trường hợp bạn muốn sử dụng kiểu URL truyền thống (query string), bạn có thể tiến hành cấu hình kích hoạt trong file application/config/config.php:

$config['enable_query_strings'] = TRUE;
$config['controller_trigger'] = 'c'; //Biến lấy tên controller
$config['function_trigger'] = 'm'; //Biến lấy tên phương thức

Lúc đó, URL của chúng ta sẽ trở thành:

example.com/index.php?c=class&m=function&id=ID


Nếu bạn có điều thắc mắc, bạn hãy comment cho V1Study để được giải đáp.
Bài viết này được chia sẻ bởi LongDT. Nếu bạn muốn chia sẻ bài viết, bạn hãy Đăng ký làm thành viên!
« Prev
Next »
Copied !!!