Tối ưu hóa đường dẫn website với file .htaccess sẽ như thế nào?

12:20 29/01/2024

Tệp .htaccess là một tệp cấu hình quan trọng cho phép bạn thực hiện nhiều thao tác quan trọng trong quá trình phát triển và quản lý trang web của mình. Tuy nhiên, không phải ai cũng hiểu rõ về tệp .htaccess và cách sử dụng nó hiệu quả. Trong bài viết này, chúng ta sẽ đi sâu vào khái niệm của tệp .htaccess và xem xét những ứng dụng phổ biến của nó, bao gồm redirect URL, rewrite URL, bảo vệ trang web, hotlink protection và nhiều hơn nữa.

FPT Polytechni

File .htaccess là gì?

.htaccess là một tệp cấu hình được sử dụng trong máy chủ web Apache để thiết lập các quy tắc và cấu hình cho thư mục cụ thể hoặc toàn bộ trang web. “htaccess” là viết tắt của “Hypertext Access,” và tệp này thường chứa các quy tắc chuyển đổi (rewrite rules) để xử lý các yêu cầu URL, điều hướng và điều chỉnh trang web. Ứng dụng phổ biến của file .htaccess bao gồm redirect URL, rewrite URL, bảo vệ trang web, hotlink protection và nhiều hơn nữa.

Tệp .htaccess có thể được sử dụng để cấu hình nhiều tính năng và chức năng khác nhau trong Apache. Sau đây là một số ứng dụng phổ biến của tệp .htaccess:

  • Bảo mật trang web
  • Chuyển hướng trang web
  • Tối ưu hóa SEO
  • Quản lý cache
  • Tải các tập tin nhanh hơn
  • Giới hạn quyền truy cập
  • Tạo trang tùy chỉnh
  • Điều chỉnh cấu hình PHP
  • Tạo trang lỗi tùy chỉnh

Làm quen với file .htaccess

Với nhu cầu dành cho sinh viên mới làm quen với lập trình, sau đây là một số gợi ý cấu hình phổ biến trong file htaccess, các bạn có thể tự tin thể hiện hiện sự chuyên nghiệp và nâng tay nghề thông qua các website cuối môn học hoặc dự án cá nhân, dự án thực tế. 

FPT Polytechni

  • Chuyển hướng từ HTTP sang HTTPS:

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

  • Loại bỏ phần mở rộng .html từ URL:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME}\.html -f

RewriteRule ^(.*)$ $1.html [NC,L]

  • Chuyển hướng tất cả các yêu cầu đến một tệp cụ thể:

RewriteEngine On

RewriteRule ^(.*)$ /path/to/your/file.php [L,QSA]

  • Ẩn phần mở rộng .php từ URL:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME}\.php -f

RewriteRule ^(.*)$ $1.php [NC,L]

  • Loại bỏ dấu gạch chéo cuối cùng (/) từ URL:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_URI} (.*)$

RewriteRule ^(.+)/$ $1 [L,R=301]

  • Chuyển hướng tất cả các yêu cầu không phải là tệp hoặc thư mục đến một tệp index:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /path/to/your/index.php [L,QSA]

  • Chặn truy cập từ một số địa chỉ IP cụ thể:

<Files “*”>

  Order Deny,Allow

  Deny from 123.456.789.0

</Files>

  • Tắt listing thư mục (Directory Listing): Options -Indexes

Một số thí dụ tham khảo

RewriteEngine On

# Chuyển đổi URL từ /category/product thành index.php?category=category&product=product

RewriteRule ^([^/]+)/([^/]+)$ /index.php?category=$1&product=$2 [L,QSA]

# Chuyển đổi URL từ /products/page/2 thành products.php?page=2

RewriteRule ^products/page/(\d+)$ /products.php?page=$1 [L,QSA]

# Chuyển đổi URL từ /products/electronics/page/2 thành products.php?category=electronics&page=2

RewriteRule ^products/([^/]+)/page/(\d+)$ /products.php?category=$1&page=$2 [L,QSA]

# Chuyển đổi URL từ /products/123/page/2 thành products.php?category=123&page=2

RewriteRule ^products/(\d+)/page/(\d+)$ /products.php?category=$1&page=$2 [L,QSA]

  • Tham khảo một số biểu thức chính quy thường dùng: 

^([^/]+)/([^/]+)$: Đây là biểu thức chính quy (regex) sẽ so khớp với một URL có dạng /category/product. Biểu thức này sẽ lấy hai giá trị được chứa giữa dấu gạch chéo.

/index.php?category=$1&product=$2: Đây là nơi bạn chuyển đổi URL thành định dạng mà máy chủ web có thể hiểu. Biến $1 và $2 là các giá trị được lấy từ biểu thức chính quy.

^products/page/(\d+)$: Đây là biểu thức chính quy (regex) sẽ so khớp với một URL có dạng /products/page/2. Biểu thức này sẽ lấy giá trị của trang từ URL.

/products.php?page=$1: Đây là nơi bạn chuyển đổi URL thành định dạng mà máy chủ web có thể hiểu. Biến $1 là giá trị của trang từ biểu thức chính quy.

^products/([^/]+)/page/(\d+)$: Đây là biểu thức chính quy (regex) sẽ so khớp với một URL có dạng /products/electronics/page/2. Biểu thức này sẽ lấy giá trị của danh mục và trang từ URL.

/products.php?category=$1&page=$2: Đây là nơi bạn chuyển đổi URL thành định dạng mà máy chủ web có thể hiểu. Biến $1 là giá trị của danh mục và $2 là giá trị của trang từ biểu thức chính quy.

^products/(\d+)/page/(\d+)$: Đây là biểu thức chính quy (regex) sẽ so khớp với một URL có dạng /products/123/page/2. Biểu thức này sẽ lấy giá trị của danh mục (là một số) và giá trị của trang từ URL.

/products.php?category=$1&page=$2: Đây là nơi bạn chuyển đổi URL thành định dạng mà máy chủ web có thể hiểu. Biến $1 là giá trị của danh mục và $2 là giá trị của trang từ biểu thức chính quy.

Lưu ý rằng khi sử dụng \d+, đó là biểu thức chính quy để so khớp với bất kỳ chuỗi số nào (dài hơn 1 ký tự). Nếu bạn chỉ muốn phù hợp với số nguyên dương, bạn có thể sử dụng ([1-9]\d*) thay vì (\d+).

^products/([^/]+)/page/(\d+)$: Đây là một biểu thức chính quy để so khớp với URL có dạng /products/abc/page/2. Biểu thức này sẽ lấy giá trị của danh mục (không chứa số) và giá trị của trang từ URL.

/products.php?category=$1&page=$2: Đây là nơi bạn chuyển đổi URL thành định dạng mà máy chủ web có thể hiểu. Biến $1 là giá trị của danh mục và $2 là giá trị của trang từ biểu thức chính quy.

Lưu ý rằng biểu thức chính quy ([^/]+) sẽ so khớp với bất kỳ chuỗi nào không chứa dấu gạch chéo (/)

Tệp .htaccess là một tệp cấu hình cho phép bạn thực hiện nhiều thao tác quan trọng như redirect URL, rewrite URL, bảo vệ trang web, hotlink protection và nhiều hơn nữa. Tuy nhiên, để sử dụng tệp .htaccess, bạn cần có kiến thức về lập trình web và biết sử dụng các lệnh cơ bản của Apache.

FPT Polytechni

Với những gợi ý trên, các bạn hoàn toàn có thể áp dụng file htaccess vào dự án cuối môn học của mình. Để website mang tính chuyên nghiệp hơn với những URL thân thiện người dùng.

Giảng viên Trần Bá Hộ
Bộ môn Công nghệ thông tin
FPT Polytechnic TP HCM

Cùng chuyên mục

Đăng Kí học Fpoly 2024

  • Max. file size: 50 MB.
  • Max. file size: 50 MB.
  • Max. file size: 50 MB.