Thứ Tư, 10 tháng 12, 2014

// // Leave a Comment

Các cách Rewrite URL thông dụng bằng file .htaccess

Bài viết này sẽ giúp bạn Rewrite URL sao cho thân thiện với người dùng nhất và công cụ tìm kiếm (tốt cho SEO) bằng cách sử dụng file .htaccess cực kì đơn giản.



Để dễ hiểu bạn có thể xem qua VD dưới đây!
-Đây là link bài viết của bạn khi code bằng php và chưa sử dụng Rewrite gì cả!
1
tutran.net/post.php?id=123&slug=tieu-de-bai-viet
-Còn đây là link sau khi Rewrite URL với file .htaccess
1
tutran.net/tieu-de-bai-viet-123.html
Ưu điểm của việc sử dụng file .htaccess để Rewrite URL thì bạn đã thấy rõ qua VD trên rồi chứ :] Vậy để làm được vậy thì chúng ta sẽ đi vào ngay với từng trường hợp cụ thể nhé!
Để thực hiện được các chức năng này thì yêu cầu sever của bạn phải bật mod_rewrite, nhưng bạn yên tâm là hầu như tất cả các host đều đã hỗ trợ chức năng này, kể cả mấy host free vớ vẩn còn có cơ mà.
Trước hết bạn tạo 1 file tên là .htaccess ngang hàng với file index của bạn (nếu chưa có) hoặc chèn vào đầu file nếu đã có sẵn với các trường hợp dưới đây (từ đơn giản đến hơi hơi phức tạp).

Các cách Rewrite URL tạo URL thân thiện

1. tutran.net/post.php?id=123 –> tutran.net/post-123.html
Đây là dạng Rewrite đơn giản nhất để che dấu đuôi .php chẳng hạn.
1
2
RewriteEngine on
RewriteRule ^post-([0-9]+).html$ post.php?id=$1
Đơn giản bạn hiểu như sau. Phần trong ngoặc ([0-9]+) sẽ được thay thế bởi $1 mà $1 = 123
2. tutran.net/post.php?cat=laptop&type=dell&id=5537 –> tutran.net/san-pham/laptop-dell-5537/
1
2
RewriteEngine on
RewriteRule ^san-pham/([a-zA-Z0-9_-]+)-([a-zA-Z0-9_-]+)-([0-9]+)/$ post.php?cat=$1&type=$2&id=$3
Cách thức hoạt động của nó như sau: Ngoặc đơn () thứ nhất sẽ được thay thế bởi $1 và lần lượt đến ngoặc đơn () thứ 2 và thứ 3.
– Bạn có thể xem hình ảnh sẽ miêu tả trực quan hơn

Các ứng dụng khác của file .htaccess

1. Chuyển hướng 301

- Chuyển từ 1 trang cũ sang 1 trang mới
1
Redirect 301 /trang-cu.html http://www.example.com/trang-moi.html
- Chuyển hướng từ thư mục cũ sang thư mục mới
1
Redirect 301 /folder/ http://www.example.com/new-folder/
- Chuyển trang từ có không có www sang có www
1
2
3
4
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^mysite.com
RewriteRule (.*) http://www.mysite.com/$1 [R=301,L]
Việc này giúp bạn tránh gặp phải tình trạng trang có cả www và không có www, điều này rất quan trọng trong seo vì tránh hiện tượng trùng lặp nội dung dẫn đến bị google phạt.
- Chuyển hướng vĩnh viễn tên miền cũ sang tên miền mới
1
2
3
Options +FollowSymLinks
RewriteEngine on
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
Chuyển hướng vĩnh viễn từ tên miền cũ (nơi đặt file .htaccess có đoạn code trên) sang tên miền mới (newdomain.com).

0 nhận xét:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.