Hướng dẫn tạo URL thân thiện bằng việc sử dụng .htaccess

Với người sử dụng internet , khái niệm URL – Uniform Resource Locator là điều quá quen thuộc , chúng ta vẫn hay gọi nó là đường link của trang web , khi đọc được một thông tin nào đó hay , bạn cảm thấy nó có ích thì chắc hẳn tất cả chúng ta đều đã từng làm một việc là copy địa chỉ URL đó và gửi cho bạn bè qua Facebook , yahoo … . Đó là đối với người sử dụng , vậy với một người quản trị Web hay một Seoer thì URL có tác dụng gì ? .

Hiển nhiên là 2 người ngày sẽ sử dụng URL cho công việc của họ , một Seoer luôn muốn từ khóa của mình xuất hiện ở những vị trí quang trọng trong trang web , đó là thẻ title , thẻ meta description , meta keywords , thẻ H1 trong bài viết và tất nhiên là trên cả URL , tại sao lại vậy ? , bạn có thể thấy khi bạn tìm kiếm 1 từ khóa bất kỳ trên google thì google thường bôi đậm từ khóa đó trên đường link các trang web kết quả như hình dưới đây , tức là google có chú ý đến cả URL trang web

Ảnh chụp màn hình_2013-12-22_153548

Những trang web như trên được gọi là có đường link thân thiện , nhưng với 1 lập trình viên web thì đường link được sử dụng để mã nguồn đọc và hiểu yêu cầu của người dùng là gì và đưa ra kết quả tương ứng , nên bạn có thể thấy một số trang web có đường link dạng như này

http://vozforums.com/showthread.php?t=3621184&page=3

nhìn đường link trên chắc chắn người dùng sẽ không thể biết nó dẫn đến cái gì , nhưng đó là cách mà mã nguồn xử lý thông tin yêu cầu , bạn có thể thấy ở đây có các yếu tố

showthread.php

t=3621184

page=3

Điều này có nghĩa là đường link này sẽ sử dụng file showthread.php để xử lý , và nó nhận được yêu cầu là t ( thread ) = 3621184 , tức là hiển thị nội dung của chủ đề thảo luận có id là 3621184 trong database , và hiện trang ( page ) thứ 3

Đường link như vậy có thể coi là tiện lợi cho coder trong việc thao tác trực tiếp trên database vi họ chỉ cần nhìn đường link và sửa bản ghi có id tương ứng , nhưng là rất tệ hại với 1 Seoer vì nó không có chút tác dụng gì với công việc SEO của họ.

Vì vậy việc cần làm là viết lại đường link , ở đây mình lấy ví dụ với đường dẫn như này

/xem.php?product=8&type=1

cho biết cần xem sản phẩm ( áo chẳng hạn ) có id là 8 ,  và kiểu áo đó là loại 1 ( 1 = kiểu áo ngắn tay , 2 = kiểu áo dài tay )

Tên của sản phẩm đó là “Áo bóng đá câu lạc bộ Arsenal”. Vậy chúng ta có thể viết đường link như sau

/san-pham/8/ao-bong-da-cau-lac-bo-arsenal/1/

nhìn sẽ tốt hơn cho cả người dùng và google đúng không , để trang web hiểu được , bạn có thể dùng .htaccess

việc đầu tiên là bạn cần đảm bảo server web của bạn hỗ trợ mod_rewrite , cái này thì tất cả các nhà cung cấp dịch vụ hosting đều hỗ trợ rồi nên bạn không cần quá quan tâm .

Hãy tạo 1 file có tên là .htaccess ngang hàng với file index của bạn , và nhập nội dung cho nó như sau

RewriteEngine on
RewriteRule ^san-pham/([0-9]+)/([a-zA-Z_-]+)/([0-9]+)/$ xem.php?product=$1&type=$3

Đoạn nội dung trên có nghĩa là

RewriteEngine on = Sử dụng mod_rewrite

Dòng thứ 2 bạn hãy để ý đoạn từ ^ đến $

san-pham/([0-9]+)/([a-zA-Z0-9_-]+)/([0-9]+)/ 

có nghĩa là khi đường link có cấu tạo dạng : san-pham/*một đoạn ký tự gồm các chữ số*/*một đoạn văn bản*/*một đoạn ký tự gồm các chữ số */

thì tương tự với :  xem.php?product=$1&type=$3

$1 = nội dung thứ nhất , mà trên đường link đã viết lại là số 8

$3 = nội dung thứ 3 , trên đường link là 1

vậy $2 tương đương với nội dung 2 là ao-bong-da-cau-lac-bo-arsenal đâu ? , chúng ta không dùng đến nó cho việc xử lý dữ liệu , nó chỉ dùng để làm đẹp URL và tốt hơn với SEO

Đây là ví dụ đơn giản nhất về việc Rewrite URL , dựa vào ví dụ trên bạn hoàn toàn có thể tạo ra những đường link theo ý mình

, bạn hãy thử thay /san-pham/8/ao-bong-da-cau-lac-bo-arsenal/1/ thành /san-pham/ao-bong-da-cau-lac-bo-arsenal-ngan-tay/ 

đường link sau sẽ loại bỏ cả số id trên url và cả kiểu áo , đó là 1 đường link chuẩn với SEO , nhưng không có id thì làm sao để lấy ra sản phẩm đó , một gợi ý nhỏ cho bạn , hãy thử tạo thêm 1 cột là slug cạnh cột tên sản phẩm trong data và với sản phẩm có tên là Áo bóng đá câu lạc bộ Arsenal thì giá trị slug của nó sẽ là ao-bong-da-cau-lac-bo-arsenal

Chúc các bạn đang trên đường trở thành 1 webmaster  thành công với mẹo nhỏ này

Nguyễn Nam – Team Coder – OBS media