Làm cách nào để chuyển hướng với htaccess?

Bất cứ khi nào bạn di chuyển một trang web hoặc thậm chí chỉ di chuyển một trang đến một URL mới, chuyển hướng đảm bảo rằng người dùng của bạn không bị lạc trong quá trình xáo trộn. Các công cụ tìm kiếm cũng sử dụng các chuyển hướng để hỗ trợ lập chỉ mục đúng nội dung trang web của bạn

Điều quan trọng là phải hiểu sự khác biệt giữa hai loại chuyển hướng phổ biến nhất

  • Chuyển hướng vĩnh viễn — Chuyển hướng vĩnh viễn hoặc chuyển hướng 301 nên được sử dụng bất cứ khi nào bạn di chuyển vĩnh viễn một trang, thư mục hoặc trang web
  • Chuyển hướng tạm thời — Nên sử dụng chuyển hướng tạm thời hoặc chuyển hướng 302 nếu bạn muốn tạm thời trỏ người dùng đến một vị trí khác

Nếu bạn đang chạy một máy chủ Apache, thì bạn có thể tạo một tệp có tên

Redirect 301 "/old-page.html" "/new-page.html"
2 trong bất kỳ thư mục nào để có thể ghi đè cục bộ một số cấu hình máy chủ. Việc một tệp
Redirect 301 "/old-page.html" "/new-page.html"
2 tồn tại trong thư mục gốc của một trang web là rất phổ biến. Bạn có thể sử dụng một cú pháp rất đơn giản trong tệp
Redirect 301 "/old-page.html" "/new-page.html"
2 để thiết lập chuyển hướng trang, thư mục và toàn bộ trang web. Mặc dù bạn có thể khá nâng cao với các chuyển hướng URL, nhưng chúng tôi sẽ bắt đầu với các trường hợp sử dụng đơn giản nhất

Có ba trường hợp sử dụng phổ biến khi thiết lập chuyển hướng

  • Chuyển hướng một trang sang một trang mới
  • Chuyển hướng toàn bộ thư mục sang một thư mục mới
  • Chuyển hướng toàn bộ trang web đến một trang web mới

Cú pháp chuyển hướng

Đây là cú pháp cơ bản để chuyển hướng được viết bằng chỉ thị chuyển hướng mod_alias trong Apache

Redirect [status] URL-path URL
  • Hãy chắc chắn rằng bạn viết hoa
    Redirect 301 "/old-page.html" "/new-page.html"
    
    5 trong
    Redirect 301 "/old-page.html" "/new-page.html"
    
    0 nếu không nó sẽ không hoạt động. Mọi thứ đều phân biệt chữ hoa chữ thường
  • Trạng thái là tùy chọn và thường là một số biểu thị mã trạng thái HTTP mà bạn muốn gửi tới trình duyệt. Bạn có thể sử dụng từ
    Redirect 301 "/old-page.html" "/new-page.html"
    
    1 ở vị trí của
    Redirect 301 "/old-page.html" "/new-page.html"
    
    2, hoặc
    Redirect 301 "/old-page.html" "/new-page.html"
    
    3 ở vị trí của
    Redirect 301 "/old-page.html" "/new-page.html"
    
    4. Nếu không được cung cấp, thì
    Redirect 301 "/old-page.html" "/new-page.html"
    
    4 sẽ được sử dụng làm giá trị mặc định
  • Đường dẫn URL là bắt buộc và luôn là đường dẫn liên quan đến thư mục gốc của trang, không phải vị trí của tệp
    Redirect 301 "/old-page.html" "/new-page.html"
    
    2
  • URL là bắt buộc và là đường dẫn liên quan đến thư mục gốc của trang, giả sử chuyển hướng nằm trong cùng một trang hoặc URL tuyệt đối nếu chuyển hướng trỏ đến một trang khác

Chuyển hướng một trang

Hãy bắt đầu với một chuyển hướng đơn giản nơi bạn muốn trỏ một trang đến một trang khác

Redirect 301 "/old-page.html" "/new-page.html"

Như bạn có thể thấy, chúng tôi đang thực hiện chuyển hướng 301 [vĩnh viễn] từ một trang trên trang web hiện tại sang một trang khác trên cùng một trang web

Nếu trang mới nằm ở một tên miền khác hoặc thậm chí tên miền phụ, thì đây là cách bạn viết chuyển hướng

________số 8

Hoàn toàn có thể chấp nhận sử dụng phương pháp này ngay cả khi trang nằm trên cùng một trang. Rõ ràng hơn và sử dụng một URL tuyệt đối không bao giờ gây hại

Xem ví dụ cuối diễn ra như thế nào với một vài biến thể URL khác nhau

#Target URLDestination URL1
Redirect 301 "/old-page.html" "/new-page.html"
7
Redirect 301 "/old-page.html" "/new-page.html"
82
Redirect 301 "/old-page.html" "/new-page.html"
9
Redirect 301 "/old-page.html" "//www.new.com/new-page.html"
03
Redirect 301 "/old-page.html" "//www.new.com/new-page.html"
1
Redirect 301 "/old-page.html" "/new-page.html"
84
Redirect 301 "/old-page.html" "//www.new.com/new-page.html"
3
Redirect 301 "/old-page.html" "/new-page.html"
8

Giải trình

  • Chuyển hướng số 1 — Đưa một trang trên tên miền cũ sang trang mới trên tên miền mới
  • Chuyển hướng #2 — Thực hiện tương tự như chuyển hướng đầu tiên, nhưng chứng minh rằng bất kỳ tham số GET URL nào cũng được chuyển như một phần của chuyển hướng
  • Chuyển hướng #3 — Một ví dụ về chuyển hướng từ tên miền hiện tại sang tên miền phụ
  • Chuyển hướng #4 — Thể hiện một chuyển hướng diễn ra trên cùng một tên miền [phụ]

Chuyển hướng toàn bộ thư mục

Đây là một ví dụ về cách bạn sẽ chuyển hướng từ thư mục này sang thư mục khác

Redirect 301 "/old-page.html" "/new-page.html"
7

Một lần nữa, chúng ta hãy xem kỹ ví dụ này có thể diễn ra như thế nào

#Target URLDestination URL1
Redirect 301 "/old-page.html" "//www.new.com/new-page.html"
5
Redirect 301 "/old-page.html" "//www.new.com/new-page.html"
62
Redirect 301 "/old-page.html" "//www.new.com/new-page.html"
7
Redirect 301 "/old-page.html" "//www.new.com/new-page.html"
83
Redirect 301 "/old-page.html" "//www.new.com/new-page.html"
9
Redirect 301 "/old-page.html" "/new-page.html"
704
Redirect 301 "/old-page.html" "/new-page.html"
71
Redirect 301 "/old-page.html" "/new-page.html"
725
Redirect 301 "/old-page.html" "/new-page.html"
73
Redirect 301 "/old-page.html" "/new-page.html"
74

Giải trình

  • Chuyển hướng số 1 — Đưa thư mục trên miền cũ sang thư mục mới trên miền mới
  • Chuyển hướng #2 — Hiển thị rằng mọi trang riêng lẻ trong thư mục cũ sẽ tự động được chuyển hướng đến cùng một vị trí trong thư mục mới
  • Chuyển hướng #3 — Hiển thị rằng mọi thư mục con trong thư mục cũ sẽ tự động được chuyển hướng đến cùng một vị trí trong thư mục mới
  • Chuyển hướng số 4 - Minh họa bản chất đệ quy của chuyển hướng
  • Chuyển hướng số 5 — Thực hiện tương tự như chuyển hướng đầu tiên, nhưng chứng minh rằng các tham số URL GET luôn được chuyển như một phần của chuyển hướng

Giả định với loại chuyển hướng này là nội dung của thư mục trên URL đích giống hệt như trước đây trên URL mục tiêu. Nói cách khác, chỉ có tên thư mục đã thay đổi

Có thể kết hợp chuyển hướng thư mục và một số chuyển hướng trang đơn, như thế này

Redirect 301 "/old-page.html" "/new-page.html"
8

Ví dụ này cho thấy rằng thứ tự là quan trọng. Khi một quy tắc chuyển hướng được nhấn, nó sẽ xảy ra ngay lập tức. Phần còn lại của tệp không được xử lý theo quy tắc chuyển hướng. Nếu chuyển hướng trang đơn của chúng tôi không thành công, thì chuyển hướng thư mục chung sẽ xảy ra. Đây là cách thích hợp để xử lý chuyển hướng trong đó nội dung của thư mục trên URL đích giống hệt như trước đây trên URL mục tiêu, ngoại trừ các trang

Redirect 301 "/old-page.html" "/new-page.html"
75 và
Redirect 301 "/old-page.html" "/new-page.html"
76

Chuyển hướng toàn bộ trang web

Đây là một ví dụ về cách bạn sẽ chuyển hướng toàn bộ trang web

Redirect 301 "/old-page.html" "/new-page.html"
1

Như bạn có thể thấy, chuyển hướng này giả định rằng mọi thứ trên trang web mới đều ở cùng một vị trí như trên trang web cũ

Chủ Đề