Thiết kế website Front End / HTML / CSS / JS

.Htaccess và một số ví dụ Rewrite URL sử dụng htaccess

  • by mr.T 18/04/2020
  • 5,185

 

Nói ngắn gọn, Htaccess là thứ để giúp bạn rewrite đường link ngắn gọn, chuẩn SEO, thay vì đường link với quá nhiều tiền tố, tham số ngằng ngèo khó nhớ.

Ví dụ:

https://trungtrinh.com/index.php?com=news&act=detail&id=2001&title=hướng dẫn về htaccess

Có thể viết ngắn gọn thành:

https://trungtrinh.com/news/2001/huong-dan-ve-htaccess.html

Hoặc:

https://trungtrinh.com/huong-dan-ve-htaccess.html

OK! Dưới đây sẽ là một số ví dụ phổ biến nhất mà tập tin .htaccess mang đến cho lập trình viên, để tạo ra đường dần website thân thiện (friendly url)

 

1. Tự chuyển tên miền không www sang có www 

Nếu bạn muốn khách truy cập vào web bằng đường tên miền trungtrinh.com sẽ tự chuyển thành www.trungtrinh.com thì hãy cấu hình file .htaccess như sau:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^trungtrinh\.com$
RewriteRule (.*) https://www.trungtrinh.com/$1 [R=301,L]

Lưu ý: hãy phân biệt https và http nhé, trường hợp trungtrinh.com có sử dụng SSL (bảo mật tên miền) nên cấu hình https://www.trungtrinh.com, còn nếu website các bạn không có SSL thì hãy cấu hình: http://tên miền của bạn.com

 

2. Tự chuyển tên miền có www sang không có www 

Tương tự, nếu muốn khách truy cập www.trungtrinh.com tự chuyển thành trungtrinh.com thì hãy cấu hình file .htaccess như sau:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.trungtrinh.com [NC]
RewriteRule ^(.*)$ https://trungtrinh.com/$1 [L,R=301]

Lưu ý: Giống như trên, hãy phân biệt https và http nhé.

 

3. trungtrinh.com/vidu.php?key=abc sang trungtrinh.com/abc 

Bạn đã từng nhìn thấy một số đường dẫn ngắn gọn, ví dụ như bài viết này: https://trungtrinh.com/htaccess-va-mot-so-vi-du-rewrite-url-su-dung-htaccess.html. Thật ra, đường dẫn gốc của bài viết này không ngắn gọn thế đâu, nó có thể là trungtrinh.com/index.php?com=baiviet&id=122&tieude=htaccess+và+........

Dưới đây là cách để rewrite ngắn gọn kiểu như vậy sử dụng .htaccess:

RewriteEngine On
RewriteRule ^(.*)$ vidu.php?key=$1
RewriteRule ^(.*)/$ vidu.php?key=$1

Giải thích tại sao lại có 2 dòng: Dòng thứ nhất là chúng ta có thể vào bằng đường dẫn trungtrinh.com/abc, dòng thứ hai là trungtrinh.com/abc/

 

4. sanpham.php?id=1000 sang san-pham/ten-san-pham/1000.html 

Một đường dẫn website tốt, không những là ngắn gọn, việc đưa từ khóa liên quan lên đường link cũng rất hữu ích cho việc SEO web (đưa website lên các công cụ tìm kiếm, cụ thể là Google).

RewriteEngine on
RewriteRule ^san-pham/(.*)/(.*).html$ sanpham.php?id=$2

Ngoài ra, các bạn cũng có thể đưa ID đứng trước tên sản phẩm, ví dụ: san-pham/1000/ten-san-pham.html 

RewriteEngine on
RewriteRule ^san-pham/(.*)/(.*).html$ sanpham.php?id=$1

 

5. sanpham.php?id=1000 sang san-pham/ten-san-pham-1000.html 

Đây là ví dụ cơ bản nhất, phổ biến nhất, thông thường các website PHP ngày nay thường sử dụng cách này để rewrite cho các trang sản phẩm, dịch vụ:

RewriteEngine on
RewriteRule ^san-pham/(.*)-(.*).html$ sanpham.php?id=$2

 

6. Thay đổi thư mục gốc (Vào domain chính nhưng redirect vào một thư mục con) 

Một số trường hợp các bạn muốn đặt code vào một thư mục con nào đó, nhưng không muốn khách truy cập bằng đường dẫn trungtrinh.com/thumuccon.

RewriteEngine On
RewriteCond %{HTTP_HOST} ^trungtrinh\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.trungtrinh\.com$
RewriteCond %{REQUEST_URI} !^/thumuccon/
RewriteRule (.*) /thumuccon/$1

TRÊN ĐÂY LÀ MỘT SỐ VÍ DỤ VỀ VIỆC SỬ DỤNG HTACCESS ĐỂ THAY ĐỔI ĐƯỜNG DẪN WEBSITE THÂN THIỆN VỚI SEO. 

Ngoài ra còn có nhiều ví dụ, nhiều cách rewrite khác mà nếu như các bạn nắm được nguyên tắc cơ bản sẽ có thể tùy biến để website chuyên nghiệp hơn.


Bạn đang xem bài viết tại chuyên mục Front End / HTML / CSS / JS của Website Trung Trịnh. Nếu thấy bổ ích, hãy bấm like và share để chia sẻ cho mọi người cùng xem nhé!

BÌNH LUẬN

BÀI VIẾT KHÁC