Htaccess Redirect 301 thay đổi URL cũ sang URL mới

Htaccess Redirect 301 thay đổi URL cũ sang URL mới. Đến một ngày đẹp trời nào đó, bạn cũng sẽ muốn thay đổi lại cấu trúc bài viết, hay cấu trúc thư mục trong website của mình. Đơn giản chỉ là đổi tên thư mục, hay đổi tên Category, sửa lại tên bài viết chút ít... Đổi gì thì đổi, nhưng mà nhất quyết đừng quên làm điều này nhé: Redirect 301.

Những thay đổi đã liệt kê trên, đều tác động đến URL trên Website của bạn. URL mà thay đổi là anh Google sẽ "chơi" bạn ngay đấy :). Nói một cách cụ thể: Google đã đánh chỉ mục (index) toàn bộ các trang trên website của bạn, URL một hay nhiều trang đó tự nhiên thay đổi sẽ dẫn tới việc các kết quả tìm kiếm link đến trang đó sẽ mất tác dụng. Khách viếng thăm khi click vào kết quả tìm kiếm đó sẽ nhận được một dòng "404 - Page not found" to đùng.

Đơn giản thôi, Redirect 301 sẽ giải quyết vấn đề.

Giải quyết thế nào thì sẽ để sau :D Trước hết ta cùng nói về một số cách có thể dùng để giải quyết vấn đề thay đổi URL, nhằm dễ đối chiếu và so sánh hơn.

1. Dùng Redirect bằng HTML

Tạo một cấu trúc đường dẫn giống như đường dẫn cũ, tại đó được thay thế bằng một file HTML trắng có chứa đoạn mã trong phần <head> giúp người dùng và bọ tìm kiếm được chuyển hướng tới trang mới. Đoạn mã đó như sau:

 

1.<META HTTP-EQUIV="refresh" content="0;URL=http://vinastar.net/giai-phap.html">

 

Cụ thể, chèn đoạn trên vào phần <head> sẽ giúp chuyển hướng tới trang http://vinastar.net/giai-phap.html

Cách này thì rõ là có hiệu quả. Nhưng đó là cách "các cụ hay làm". Thời nay website hầu hết là web động chứ không còn là những file HTML nằm trong những thư mục riêng biệt như xưa nữa, nếu làm cách này thì sẽ mất công tạo nên một số thư mục mới sao cho URL giống với đường dẫn cũ. Cách này rất thủ công, và đặc biệt mất công với những trang thay đổi đồng loạt rất nhều URL. Điểm tốt duy nhất là ta vẫn giữ được thứ hạng tìm kiếm trên Google, sau một thời gian thấy search mà nó ra kết quả đúng với URL mới thì ta có thể dẹp các redirect này đi.

Tuy nhiên cách này được khá nhiều spammer lợi dụng để đánh lạc hướng máy chủ tìm kiếm. Chúng tập trung tối ưu hoá một trang rất tốt, sau đó redirect trang đó tới 1 trang khác có nội dung không liên quan (tất nhiên là theo mục đích riêng). Google biết điều đó, chính vì vậy không nên quá lạm dụng kỹ thuật này.

2. Sử dụng trang báo lỗi 404

Thực ra, khi kết quả tìm kiếm dẫn tới 1 URL sai thì server sẽ tự động báo lỗi 404 thôi :D Cách này chẳng qua là làm cho trang báo lỗi đó "có tính chất xã hội" một chút, giúp người dùng hiểu là trang họ đang tìm hiện không còn. Tuy nhiên cách này có 1 số đặc điểm sau đây:

  • Người xem sẽ cảm thấy khó chịu. Một số ít người "cần cù, chăm chỉ" thì sẽ chịu khó search lại trên chính website của bạn, và tìm ra trang họ cần. Nhưng những người như thế rất ít.
  • Trang lỗi 404 chẳng có tác dụng gì với Google cả :) Bạn sẽ vẫn mất hết thứ hạng của các trang này trên kết quả tìm kiếm. Đợi vài tuần hoặc vài tháng sau nhé.
  • Sau đó, dù đợi vài tuần hay vài tháng sau thì kết quả tìm kiếm đã không còn được đánh giá cao như trước nữa. Những website trước đây đi copy bài viết của bạn bây giờ lại vươn lên trang đầu, bạn thì ở trang sau. Hơn nữa, toàn bộ backlink trỏ đến những URL đó mà bạn đã khổ công xây dựng sẽ không còn tác dụng.

Nhưng nói chung, vẫn cần phải có một trang báo lỗi 404. Nó có tác dụng nhất định giúp người xem ít nhất không bị "tuyệt vọng". 

Vậy sử dụng Redirect 301 thế nào?

Redirect 301 (hay Redirection 301) là cách tốt nhất khi bạn muốn chuyển hướng người xem và máy chủ tìm kiếm từ URL cũ tới URL mới. Khi dùng Redirect 301, tại định đạng HTML của trang mang URL cũ sẽ được trả về mã lỗi 301 (một loại khác với mã lỗi 404, 500, 503...) trong phần <head>. Mã lỗi này giải thích với máy chủ tìm kiếm, máy chủ website hoặc trình duyệt rằng trang này đã được chuyển sang một địa chỉ mới. Google hay các máy chủ tìm kiếm khi gặp mã lỗi 301 sẽ không đánh tụt thứ hạng tìm kiếm của trang đó, mà vẫn đảm bảo đưa người dùng và bọ tìm kiếm tới đúng nơi, đúng chỗ.

Thực hiện như sau:

Tạo một file .htaccess rồi upload lên thư mục gốc. Nội dung file .htaccess đó như sau:

 

1.Options +FollowSymLinks
2.RewriteEngine On
3.RewriteBase /
4.redirect 301 đường-dẫn-cũ đường-dẫn-mới

 

3 dòng đầu là những dòng lệnh cơ bản bạn nên có trong file .htaccess, câu lệnh cơ bản của Redirect 301 là ở dòng thứ 4.

Ví dụ, bạn muốn chuyển hướng bài viết cũ http://domain-cua-ban.com/category/photoshop tới địa chỉ mới http://domain-khac.com/cat/photoshop.html:

 

1.redirect 301 /category/photoshop http://domain-khac.com/cat/photoshop.html

 

Nếu chỉ redirect các trang trong cùng 1 website (cùng host) thì bạn có thể bỏ tên domain đi, chỉ giữ lại đường dẫn tương đối từ thư mục gốc. Ví dụ trong trường hợp Miso Blog thay đổi URL của các Category, còn các bài viết giữ nguyên tên, dùng các lệnh như sau:

 

01.redirect 301 /studying/photoshop/ /graphics/photoshop/
02.redirect 301 /studying/css/ /graphics/css/
03.redirect 301 /tips-tricks/joomla/ /joomla/tutorials/
04.redirect 301 /tips-tricks/general/ /misc/tips-tricks/
05.redirect 301 /diary/misc/ /misc/diary/
06.redirect 301 /freebies/downloads/ /misc/downloads/
07.redirect 301 /tips-tricks/mobile-phone/ /misc/mobile-phone/
08.redirect 301 /studying/voip/ /misc/voip/
09.redirect 301 /freebies/inspirations/ /graphics/inspirations/
10.redirect 301 /diary/photo/ /photography/photo/
11.redirect 301 /diary/music/ /misc/music/

 

Vấn đề là vận dụng cho tốt. Chúc bạn thành công!

Chú ý:
  • Phải đảm bảo rằng server Apache mà bạn đặt website có hỗ trợ mod_rewrite cho phép sử dụng .htaccess để thực hiện Redirect 301. Nếu không rõ bạn hãy hỏi nhà cung cấp hosting.
  • Nhớ backup file .htaccess cũ (nếu có) trước khi chỉnh sửa.