SEO Wordpress

Hướng dẫn cách chuyển hướng redirect 301 bằng .htaccess

Cách chuyển hướng redirect 301 bằng .htaccess
Tác giả Evergreen
Hướng dẫn cách chuyển hướng redirect 301 bằng .htaccess
5 (100%) 12 votes

Bạn đang muốn chuyển hướng thành phần website, hãy thử redirect 301 bằng file .htaccess xem sao. Thực ra những cái này đều là kiến thức cũ cả. Nhưng mà mình đang xây dựng lại Evergreen nên phải tìm hiểu. Trong quá trình mò mẫn cũng tìm được nhiều thứ khá thú vị nên muốn chia sẻ lại cho mọi người. Đa số VD đều là kết quả của quá trình xóa link cũ, tạo link mới của chính Evergreen đấy. Copy thử là thấy ngay ý mà.

Lưu ý: Nhớ thay “https://evergreen.edu.vn” sang domain của bạn. Nhớ là trước khi redirect 301 bất cứ link nào thì link đích phải tồn tại không là sẽ bị lỗi 404 hàng loạt đấy.

Cách truy cập và chỉnh sửa file .htaccess trong hosting

  • Truy cập vào trình “Quản lý File” (File Manager) của hosting bạn đang dùng
  • Tìm và truy cập thư mục “public_html
  1. Nếu bạn cài 1 trang web duy nhất, file .htaccess sẽ nằm ngay ngoài cùng (ngang hàng với thư mục cài web và file robots.txt)
  2. Nếu bạn cài nhiều website, file .htaccess sẽ nằm ngang hàng với thư mục bạn cài web và file robots.txt. Hãy truy cập vào thư mục đó để tìm.
  • Trong trường hợp không có file .htaccess (do xóa nhầm), bạn có thể tạo mới ngay trên hosting hoặc tạo 1 file .htaccess trên máy tính không cần nội dung rồi upload lên. File .htaccess có định dạng .txt, đặt tên là .htaccess (không đặt là .htaccess.txt nha)
  • Cú pháp chuyển hướng sẽ được đặt phía dưới:

Thế nên bạn cứ đặt nó lên trên cùng của file .htaccess là được

1. Chuyển hướng link A sang link B

VD: Chuyển link “https://evergreen.edu.vn/tag/tieng-anh-giao-tiep/” sang link “https://evergreen.edu.vn/hoc-tieng-anh/hoc-tieng-anh-giao-tiep/

Thực ra cú phá đơn giản hơn là:

Tuy nhiên, có thể website bạn chạy song song 2 phiên bản www và non-www hay http và https nên cứ viết thẳng trang đích là tốt nhất. Ngoài ra, cú pháp này cũng có thể dùng khi bạn muốn redirect 1 link website bạn sở hữu sang 1 link website khác. Tuy nhiên, trường hợp ngược lại thì bạn phải có quyền truy cập hosting mới dùng được

2. Redirect 301 domain từ “www” sang “non-www” và ngược lại

VD: Chuyển domain “https://www.evergreen.edu.vn” sang “https://evergreen.edu.vn

VD: Chuyển domain “https://evergreen.edu.vn” sang “https://www.evergreen.edu.vn

Hoặc (không cần chỉnh sửa lại):

3. Xóa bỏ một thành phần trong url

VD: Xóa /category/ trong đường dẫn WordPress ( <— Click link để xem đầy đủ hướng dẫn)

Chuyển “https://evergreen.edu.vn/category/wordpress/” sang “https://evergreen.edu.vn/wordpress/“:

VD: Loại bỏ /tag/ trong url WordPress ( <— Click link để xem đầy đủ hướng dẫn)

Chuyển “https://evergreen.edu.vn/tag/amp/” sang “https://evergreen.edu.vn/amp/

VD: Loại bỏ ngày tháng năm trong url bài viết (post)

Với những ai chuyển từ blogspot sang wordpress sẽ cần

Chuyển “https://domain.com/year/month/day/title/” sang “https://domain.com/title/

Chuyển “https://domain.com/year/month/title/” sang “https://domain.com/title/

Hoặc chuyển post giữ nguyên link archive “https://domain.com/year/month/day/” hay “https://domain.com/year/month/

Giải thích: Kiểm tra điều kiện RewriteCond nếu không phải URL được request thì thực hiện quy tắc chuyển hướng. ((20|19)[0-9]{2})  là năm với dạng 19xx và 20xx

4. Loại bỏ url chứa Param (Query_String)

Đó là khi website có 1 page lại có 2 đường dẫn hiển thị cùng 1 nội dung (sau dấu ?). Tốt nhất là chuyển nó về 1 page thôi.

VD: Chuyển url từ “https://evergreen.edu.vn/page.php?name=News” sang url “https://evergreen.edu.vn/page.php

5. Thay đổi tên miền

VD: Chuyển domain cũ sang “https://evergreen.edu.vn/

6. Chuyển toàn bộ trang trong một thư mục sang một thư mục

VD: Bạn muốn bỏ category “https://evergreen.edu.vn/tai-lieu/” bao gồm tất cả các page của nó và chuyển sang category “https://evergreen.edu.vn/hoc-tieng-anh/

7. Chuyển trang động sang page tĩnh

Cái này chẳng cần thiết đâu.

VD: Chuyển trang web động “page.php?id=n” (với n là giá trị biến) tới một trang tĩnh mới “new-page.html“:

8. Chuyển phần đuôi mở rộng từ .php sang .html hoặc loại bỏ đuôi .html

Nếu bạn muốn đường dẫn url thân thiện với bộ máy tìm kiếm (SEO friendly url) hơn thì làm thôi. Nếu dùng WordPress thì tốt nhất không nên làm vì nó được tối ưu rồi.

VD: Link sẽ có dạng “https://evergreen.edu.vn/abc.html

Nếu trước kia thằng coder ngáo ngáo thích để dạng .html mà bạn muốn bỏ đi thì làm ngược lại thôi. Ta sẽ chuyển hết sang dạng / để truy cập không bị 404.

VD: Link sẽ từ “https://evergreen.edu.vn/huong-dan-cach-chuyen-huong-redirect-301-bang-htaccess.html” thành “https://evergreen.edu.vn/huong-dan-cach-chuyen-huong-redirect-301-bang-htaccess/

9. Cài đặt SSL (chuyển hướng 301 http sang https và ngược lại)

Redirect http to https

Nếu như bạn cài đặt SSL cho website thì chắc chắn phải redirect 301 http sang https rồi. Tốt nhất nên dùng htaccess cho đơn giản.

VD: Redirect “http://evergreen.edu.vn/” sang “https://evergreen.edu.vn/

Lưu ý: SSL free thì Cpanel có Let’s Script hay mọi hosting có Cloudflare đấy. Bạn thích thử nghiệm có thể dùng.

Redirect https to http

Nhưng nếu như web bạn không có cài SSL mà lại bị nhà cung cấp hosting auto chuyển hướng sang https thì sao. Đừng lo, hãy chuyển hướng ngược lại là được.

VD: Redirect “https://evergreen.edu.vn/” sang “http://evergreen.edu.vn/

10. Chuyển WordPress RSS feeds sang Feedburner của Google

Hoặc giản gọn lại:

Thay “http://feeds.feedburner.com/tienganhevergreen” bằng Feedburner của bạn

Những lưu ý khi sử dụng .htaccess

1. $1, $2, $3, $4 là gì?

  • $1 là viết lại y nguyên nội dung trong dấu ngoặc đơn đầu tiên “(Nội dung)

VD: Xem lại mục 3 $1 sẽ thay bằng toàn bộ nội dung trong “(.+)

  • $2 $3 $4 tương tự $1 nhưng viết lại y nguyên nội dung trong dấu ngoặc đơn thứ 2 3 4

VD: Xem lại mục 3 $1 $2 $3 $4 sẽ thay bằng toàn bộ nội dung trong ngoặc đơn thứ 1 2 3 4 trong cụm “/([0-9]+)/([0-9]+)/([0-9]+)/(.*)$

 

Hầu hết việc chuyển hướng Redirect 301 một phần hay toàn bộ website của bạn đều chỉ trong những mục trên thôi. Nếu có vấn đề gì hãy comment phía dưới để mình nghiên cứu sửa lại giúp. Mình cũng bị lỗi hoài mới tìm được thằng chuẩn cho Evergreen đấy. Chúc các bạn không gặp lỗi trong quá trình sửa web nha!

Về tác giả

Evergreen

Chiko - Người truyền cảm hứng, chia sẻ kiến thức, kinh nghiệm tại Trung tâm Anh ngữ Evergreen English Center - Học tiếng Anh giao tiếp bằng trải nghiệm thực tế thông qua những hoạt động trải nghiệm thú vị.
Ngoài ra, Evergreen còn chia sẻ thủ thuật Facebook, kiến thức SEO và Google, kinh nghiệm Wordpress.
Nếu bạn cảm thấy thú vị, hãy đăng ký nhận tin qua Email ngay ~~~> Subscribe <~~~




Để lại comment!

4 Comments

  • Bạn ơi, mình muốn chuyển hướng

    domainA =>domainB.com
    domainA.com/page1.html => domainB.com/page1
    domainA.com/page2.html => domainB.com/page2

    Thì sử dụng lệnh như thế nào nhỉ, mình đã thử mục số 1 nhưng không được.

    • Hướng dẫn dành cho hosting thôi nha. VPS ko dùng mã này.
      – Mục 5: Chuyển tên miền mới đúng chứ?
      – Đầu tên bạn phải có /page1 tồn tại đã. Nếu đã có. Ta làm theo mục 8, cắt đuôi .html đi

      • Bạn ơi mình xin cập nhật lại ý của mình, trước mình trình bày sai:

        Mình có domain A và các page con bị hỏng cần chuyển như sau (Các page con bị hỏng ở domain cũ có đường link không tuân theo quy tắc nào cả.)

        1. DoaminA.com
        2. DomainA.com/page1
        3. DomainA.com/pageA.html
        4. DomainA.com/trang123.htm
        5. DomainA.com/trang245/trangcon123.htm

        Và domain B có 1 page như sau:

        1. DomainB.com
        2. DomainB.com/trangmoi

        Bây giờ mình cần chuyển hướng như hình sau: https://prntscr.com/kggltp

        Cấu trúc URL đã bị thay đổi, không tương xứng tuy nhiên vẫn đảm bảo là homepage chuyển sang homepage và trang con chuyển sang trang con.

        Cảm ơn bạn rất nhiều.

        • Không có quy tắc thì làm bằng tay chứ sửa kiểu gì được bây giờ?
          – Đầu tiên là redirect domain A sang domain B theo mục 5
          – Tiếp đến redirect từng post không có cấu trúc gì cả từ A sang B theo mục 1.
          Redirect từng link 1 chứ ko cấu trúc gì sao mà làm số lượng lớn được? Cố gắng tìm cấu trúc gì đó mình mới chuyển hướng đơn giản hơn giúp được.