Thông tin tài liệu:
Như đã nói về thế nào đường dẫn thân thiện (url seo friendly) thì trong bài này A Tài sẽ chỉ các bạn cách để viết lại đường dẫn như trong bài viết trước đề ra.Đây còn được gọi là đường dẫn ảo và đơn giản là nó không thật ^^.Mục đích của việc này là biến 1 URL với các kí tự mà google không thích (như ? = trên url) thành các URL dễ nhớ và tối ưu với google dựa trên mod_rewrite của Apache. Định viết lại bài hướng dẫn nhưng pác vietseo.net đã viết chi tiết...
Nội dung trích xuất từ tài liệu:
Viết lại đường dẫn URL hỗ trợ SEOViết lại đường dẫn URL hỗ trợ SEONhư đã nói về thế nào đường dẫn thân thiện (url seo friendly)thì trong bài này A Tài sẽ chỉ các bạn cách để viết lại đườngdẫn như trong bài viết trước đề ra.Đây còn được gọi là đườngdẫn ảo và đơn giản là nó không thật ^^.Mục đích của việcnày là biến 1 URL với các kí tự mà google không thích (như? = trên url) thành các URL dễ nhớ và tối ưu với google dựatrên mod_rewrite của Apache. Định viết lại bài hướng dẫnnhưng pác vietseo.net đã viết chi tiết hơn mình nên tạm thờitrích lại bài viết của bácKiểm tra cấu hình ApacheTrướ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áybạ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 choApache. Trên localhost, bạn có thể cài cho Apache bằng cáchsử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 đượcvấn đề trên, chúng ta cùng bắt đầu nhé.Để hiễu rõ hơn bạn nên tham khảo cái mô hình diễn tả quátrình rewrite URL:Viết lại đường dẫn URL cho SEO (mod rewrite, .htaccess,Apache) SeoViế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ư codebê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 FTPlên server và đổi tên lại thành .htaccess.RewriteEngine OnRewriteBase /RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /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ùngtrong 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. Haidòng này sẽ đặt điều kiện để server kiểm tra xem đường dẫnmà 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àylại.Dòng cuối cùng phụ thuộc vào quyết định của bạn, đườngdẫn ảo sẽ được đặt ra sao.Cú pháp sử dụng RewriteRule như sau:RewriteRule Pattern SubstitutionVới Pattern là định dạng của đường dẫn ảo sẽ được áp dụngcho đườ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ẫnthự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ònRewriteRule ^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 caoTrong 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 đườngdẫ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ẫnindex.php?view=tutorials&id=1&page=2vàindex.php?view=tutorials&page=2&id=1nhưng khi user truy cập qua đường dẫn ảo, sẽ có khác biệtgiữ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ấncho mình có thứ tự như sau: vị trí đầu tiên dành cho PHÂNMỤ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ôncó giá trị đầu rỗng// sử dụng array_shift() để cắt giá trị đầu tiênarray_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ọnvà 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.Viết lại đường dẫn URL cho SEO (mod rewrite, .htaccess,Apache) SeoNếu bạn đã ngán ngẫm với việc phải ngồi viết những dòngcode này bạn có thể sử dụng Tool miễn phí sau: Mod RewriteGenerator bạn chỉ cần điền URL hiện tại và URL muốn tốiưu tool sẽ thay bạn làm việc này ...