Thiết lập mod_rewrite để làm gọn URL dễ đọc và dễ nhớ
Mod_rewrite của Apache là cách hiệu quả và dễ dàng nhất để kiểm soát URL. Việc chỉnh URL được thực hiện từ phía server và có thể tạo URL gọn gàng, thân thiện với người dùng. Như tên gọi, nó sẽ viết lại URL theo ý bạn. Đây là cách dễ nhất để làm gọn gàng URL website. Trong bài hướng dẫn này, chúng tôi sẽ giải thích mod_rewrite là gì, vì sao nó hữu dụng và làm thế nào để thiết lập nó trên VPS chạy Apache!
mod_rewrite là gì?
Khi người dùng nhập URL trên web, mod_rewrite sẽ kiểm tra lại các quy tắc được định nghĩa của nó để thay thế và tạo ra URL mới. Quy tắc này dựa trên một mẫu và từ khóa nhất định.
Vì sao mod_rewrite hữu dụng?
Ưu điểm lớn nhất của mod_rewrite là nó sẽ làm gọn URL, dễ hiểu cho người dùng mà không phải là chuỗi số khó nhớ nữa.
Những URL này cũng thân thiện với trình tìm kiếm. Các bộ máy tìm kiếm sẽ tra ra URL này nhanh hơn. Hãy xem các URL bên dưới:
- URL1: http://modrewriteexample.com/client.php?id=A786#234QA
- URL2: http://modrewriteexample.com/client/=A786#234QA/
- URL3: http://modrewriteexample.com/client/Martha/
3 URL ở trên rõ ràng URL thứ 3 dễ đọc và dễ hiểu hơn thứ 1, và thứ 2. Mod_rewrite có khả năng tạo ra loại URL gọn gàng như vậy.
Làm thế nào để thiết lập mod_rewrite trên VPS Linux?
Hãy nhớ, trước khi bắt đầu, bạn cần truy cập VPS sử dụng SSH! Hãy xem qua hướng dẫn PuTTY sau nếu gặp vấn đề. Sau khi truy cập SSH, bạn có thể thiết lập mod_rewrite theo quy trình sau:
1. Cài đặt Apache
Chúng ta sẽ dùng Ubuntu 18.04 làm ví dụ. nó có bộ cài đặt tích hợp – apt-get. Trước khi cài đặt hãy cập nhật installer này trước:
sudo apt-get update
Giờ bạn cài đặt apache2 bằng lệnh:
sudo apt-get install apache2
2. Kích hoạt mod_rewrite
Chúng ta sẽ kích hoạt mod_rewrite bằng lệnh sau:
sudo a2enmod rewrite
Sau đó khới động lại Apache:
sudo service apache2 restart
3. Tạo file .htaccess
Quy tắc viết lại URL phải được định nghĩa trước. .htaccess là file chứa thông tin định nghĩa này. Server sẽ dùng chúng và nếu có lỗi gì trong file này, server trả về thông báo lỗi cho bạn. Bạn có thể tạo quy tắc rewrite bất kỳ lúc nào trên file này.
File .htacess phải được tạo trong thư mục gốc của bộ cài website
Chạy lệnh sau để truy cập file .htaccess:
sudo nano /var/www/html/.htaccess
Nó sẽ tạo ra file .htaccess nếu chưa có và mở file đó ra. Giờ bạn có thể lưu lại và thoát bằng phím CTRL+O và CTRL+X lần lượt.
Tiếp theo chúng ta sẽ mở file 000-default.conf đặt tại thư mục /etc/apache2/sites-enabled/ bằng lệnh:
sudo nano /etc/apache2/sites-enabled/000-default.conf
Bên trong file copy đoạn code sau đặt phía sau <VirtualHost *:80>:
<Directory /var/www/html> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow, deny allow from all </Directory>
Lưu lại bằng CTRL+O và thoạt bằng CTRL+X. Để có hiệu lực, khởi động lại server Apache.
4. URL Rewrite
URL rewrite viết lại URL và chuyển thành đường dẫn thực tế. Nó phải có:
- Rewrite rule được định nghĩa
- Một khuôn mẫu để URL có thể dựa vào, được nhập bởi người dùng
- Rewriting lines – nó sẽ gọi đường dẫn cần thiết
Giờ, chúng ta sẽ đặt quy tắc rewrite để chuyển người dùng tới trang About_us.html, nếu URL yêu cầu là http://ip/Aboutus
Để chạy rewrite rule thành công, bộ rewrite engine sẽ được bật. Điền lệnh bên dưới để chạy file .htaccess.
RewriteEngine on
Dòng tiếp theo sẽ là rewrite rule:
ReWriteRule ^About_us$ Aboutus.html [NC]
Cú pháp trên có thể rắc rối, chúng tôi sẽ giải thích cho bạn:
- Trong rule trên, About_us là một pattern (mẫu), khi nó gặp mẫu này nó sẽ được chuyển hướng tới trang About_us.html
- NC là flag khiến cho rule không phân biệt hoa thường, có nghĩa là Aboutus, hay ABOUTUS đều sẽ chuyển về trang http://ip/Aboutus.
- ^ để chỉ đoạn text xuất hiện ngay khi địa chỉ IP khớp.
2 dòng này kết hợp lại sẽ có file .htaccess có nội dung:
ReWriteEngine on ReWriteRule ^About_us$ Abouts_us.html [NC]
Vậy đó! Chúng ta đã tạo được một rule cho mod_rewrite!
Lời kết
URL gọn gàng là mấu chốt để một website có thể thành công. TỪ khóa rất quan trọng trong việc khiến người dùng ghi nhớ URL mà còn cho bộ máy tìm kiếm dễ tìm thấy nữa, tức là hỗ trợ thêm cho SEO! Có hàng trăm rules bạn có thể tạo và viết. Nhưng giờ bạn đã biết khái niệm cơ bản rồi, bạn sẽ nhanh chóng sử dụng được mod_rewrite thôi! Hẹn gặp bạn ở bài hướng dẫn tiếp theo
Write a Comment
You must be logged in to post a comment.