Viết lạiđườngdẫnURL
hỗ trợSEO
Như đã nói về thế nào đườngdẫ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ếtlạ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ếtlại bài hướng dẫn
nhưng pác vietseo.net đã viết chi tiết hơn mình nên tạm thời
trích lại bài viết của bác
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 đườngdẫ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é.
Để 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đườngdẫnURL cho SEO (mod rewrite, .htaccess,
Apache) Seo
Viết lạiđườngdẫnURL (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.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
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 đườngdẫ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 đườngdẫ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 đườngdẫn ảo sẽ được áp dụng
cho đườngdẫn thực tương ứng (Substitution).
Bạn có thể sử dụng nhiều định dạng cho những đườngdẫ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đườngdẫnURL 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 đườngdẫn
index.php?view=tutorials&id=1&page=2
và
index.php?view=tutorials&page=2&id=1
nhưng khi user truy cập qua đườngdẫ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ý đườngdẫ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ừ đườngdẫn ảo
$_REQUEST[´view´] = $url_array[0];
}
Tất cả chỉ cần có vậy để có tạo được đườngdẫ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.
Viết lạiđườngdẫnURL cho SEO (mod rewrite, .htaccess,
Apache) Seo
Nếu bạn đã ngán ngẫm với việc phải ngồi viết những dòng
code này bạn có thể sử dụng Tool miễn phí sau: Mod Rewrite
Generator 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
. Viết lại đường dẫn URL hỗ trợ SEO 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. 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) Seo Viết lại đường dẫn URL (mod_rewrite, .htaccess, Apache) Đầu tiên,. /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,