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 trước đề ra.Đây còn được gọiđườ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 hơn mình nên tm thi
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 đườ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 ca 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 bn nên tham khảo cái mô hình din 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, 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
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>
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 sdụng để bật RewriteEngine.
Hai dòng tiếp theo là điu kiện để sử dụng Rewrite.
Chúng ta có thchỉ 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,
nhng đườ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 s2 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, tớ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]