Diễn Đàn SEO Panda - SEO Panda Forum

Diễn Đàn SEO Panda Dành Cho Các SEOers Tự Do Thảo Luận SEO - SEO Panda Forum - Free SEO Forum to share your knowledge to the world
 
HomeCalendarFAQSearchMemberlistUsergroupsRegisterLog in
Search
 
 

Display results as :
 
Rechercher Advanced Search
Latest topics

Share | 
 

 Viết lại đường dẫn URL (mod_rewrite, .htaccess, Apache)

View previous topic View next topic Go down 
AuthorMessage
khiemsound



Posts : 1016
Points : 11635
Join date : 2012-03-27

PostSubject: Viết lại đường dẫn URL (mod_rewrite, .htaccess, Apache)   Tue Apr 10, 2012 2:50 pm

Tại sao phải “viết lại” đường dẫn và sử dụng đường dẫn ảo ? Câu trả lời thật rõ ràng: đường dẫn rõ ràng ngắn gọn bao nhiêu, thành viên nhớ được nhiều bấy nhiêu. Dù site của bạn có nội dung gì đi nữa, thì mục đích của bạn luôn là giữ được nhiều thành viên nhất có thể. Về điểm này, đường dẫn ảo sẽ là giải pháp hoàn hảo cho bạn.

Ngoài ra về phương diện SEO, một đường dẫn URL tĩnh có thể giúp cho Google index dễ dàng hơn. Thêm nữa trong khi viết lại đường dẫn bạn có thể thêm các từ khóa vào trong đường dẫn. Trang Web tĩnh lúc này sẽ có lợi thế trong kết quả tìm kiếm hơn là một trang Web động với nhiều thông số mà Google có thể không thể index được (Quá 3 thông số chẳng hạn
Kiểm tra cấu hình Apache

Trước khi bắt đầu tìm hiểu về việc tạo và sử dụng đường dẫn ảo, bạn phải chắc chắn rằng server Apache của bạn (trên máy bạn chạy localhost hoặc trên server của nơi cung cấp host) phải có module mod_rewrite và module này đã được cài cho Apache. Trên localhost, bạn có thể cài cho Apache bằng cách sửa file Conf/httpd.conf: tìm đến những dòng có rewrite_module và bỏ dấu # ở đầu đi.Nếu đã giải quyết được vấn đề trên, chúng ta cùng bắt đầu nhé.
Viết lại đường dẫn URL (mod_rewrite, .htaccess, Apache)

Đầu tiên, bạn tạo 1 file tên .htaccess với nội dung như code bên dưới nhé :
Ghi chú :
Trong Windows, bạn không thể tạo được file chỉ với phần đuôi mở rộng, vậy nên đặt tên là htaccess.txt rồi upload FTP lên server và đổi tên lại thành .htaccess.

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]


Tôi sẽ giải thích những dòng code trên ở các bước tiếp theo.
Dòng đầu tiên sử dụng để bật RewriteEngine.
Hai dòng tiếp theo là điều kiện để sử dụng Rewrite.
Chúng ta có thể chỉ dùng dòng đầu tiên và dòng cuối cùng trong 5 dòng mã trên. Tuy nhiên nếu chỉ có 2 dòng này, những đường dẫn tới thư mục và files thực sẽ ko sử dụng được. Đó là lý do chúng ta thêm vào 2 dòng số 2 và 3. Hai dòng này sẽ đặt điều kiện để server kiểm tra xem đường dẫn mà user sử dụng là có thật hay ko, trước khi xử lý nó như 1 đường dẫn ảo.
-d và -s là 2 giá trị mẫu dành cho việc kiểm tra THƯ MỤC và FILE thực. Ta sử dụng thêm [OR] để kết hợp 2 điều kiện này lại.
Dòng cuối cùng phụ thuộc vào quyết định của bạn, đường dẫn ảo sẽ được đặt ra sao.

Cú pháp sử dụng RewriteRule như sau:
RewriteRule Pattern Substitution

Với Pattern là định dạng của đường dẫn ảo sẽ được áp dụng cho đường dẫn thực tương ứng (Substitution).
Bạn có thể sử dụng nhiều định dạng cho những đường dẫn thực khác nhau.
Ví dụ:
RewriteRule ^tutorials/(.*)/(.*)$ /tutorials.php?id=$1&page=$2 [L]

sẽ chuyển /tutorial/X/Y (đường dẫn ảo) thành
/tutorial.php?id=X&page=Y (đường dẫn thực)

còn
RewriteRule ^download/(.*)$ /download.php?id=$1 [L]
#sẽ chuyển /download/X thành /download.php?id=X.
Viết lại đường dẫn URL nâng cao

Trong hướng dẫn này, tôi giới thiệu với bạn 1 cách theo tôi là khả thi nhất để giảm số lần sửa đổi đối với file .htaccess: sử dụng duy nhất 1 file PHP để xử lý mọi trường hợp của đường dẫn ảo. Đây chính là cách mà tôi sử dụng cho site mà bạn có thể nhìn thấy tại dòng thứ 5 của đoạn mã trên. Tất cả các đường dẫn sẽ được chuyển tới file index.php và được xử lý tại đây.

Để xem chúng ta cần những gì trong file index.php nhé.
Trước hết bạn phải thiết kế 1 chuỗi truy vấn có thứ tự cố định.
Một ví dụ minh hoa: ko có sự khác biệt giữa 2 đường dẫn
index.php?view=tutorials&id=1&page=2


index.php?view=tutorials&page=2&id=1

nhưng khi user truy cập qua đường dẫn ảo, sẽ có khác biệt giữa
/tutorials/1/2 và /tutorials/2/1.
Đó là lý do tôi dùng cụm từ “chuỗi truy vấn có thứ tự cố định”.
Tiếp theo, giả sử bạn đã quyết định được 1 chuỗi truy vấn cho mình có thứ tự như sau: vị trí đầu tiên dành cho PHÂN MỤC, vị trí thứ hai cho ID, vị trí thứ 3 cho SỐ TRANG, …. Chúng ta sẽ xử lý đường dẫn ảo qua index.php như sau:
if(!$QUERY_STRING) {
// sử dụng điều kiện này để tiếp tục dùng
//đường dẫn kiểu truy vấn.
$url=strip_tags($REQUEST_URI);
$url_array=explode(”/”,$url);
// vì chúng ta sử dụng $REQUEST_URI nên $url_array luôn có giá trị đầu rỗng
// sử dụng array_shift() để cắt giá trị đầu tiên
array_shift($url_array);
// gán các giá trị tương ứng lấy từ đường dẫn ảo
$_REQUEST[´view´] = $url_array[0];
}

Tất cả chỉ cần có vậy để có tạo được đường dẫn ảo ngắn gọn và dễ nhớ cho site của bạn và nâgn cao khả năng cạnh tranh để có thứ hạng cao trên công cụ tìm kiếm.

Tham khảo và sửa đổi từ blog.vnseo.com.
Back to top Go down
View user profile
 
Viết lại đường dẫn URL (mod_rewrite, .htaccess, Apache)
View previous topic View next topic Back to top 
Page 1 of 1
 Similar topics
-
» how to select dropdown value
» Data Driven Framework using Selenium WebDriver with Apache POI

Permissions in this forum:You cannot reply to topics in this forum
Diễn Đàn SEO Panda - SEO Panda Forum :: Search Engine Optimization :: SEO Tools & SEO Tips-
Jump to: