Sử dụng mod_rewrite để chuyển hướng toàn bộ trang web của bạn

Htaccess, mod_rewrite và Apache

Các trang web di chuyển. Đó là một thực tế của phát triển Web. Và nếu bạn thông minh, bạn sử dụng chuyển hướng 301 để tránh sự liên kết bị thối. Nhưng nếu bạn di chuyển toàn bộ trang web thì sao? Bạn có thể đi qua và viết thủ công một chuyển hướng cho mọi tệp trên trang web. Nhưng điều đó có thể mất nhiều thời gian. May mắn là có thể sử dụng htaccess và mod_rewrite để chuyển hướng toàn bộ trang web chỉ với một vài dòng mã.

Cách sử dụng mod_rewrite để chuyển hướng trang web của bạn

  1. Trong thư mục gốc của máy chủ Web cũ của bạn, hãy chỉnh sửa hoặc tạo một tệp .htaccess mới bằng cách sử dụng trình soạn thảo văn bản.
  2. Thêm dòng: RewriteEngine ON
  3. Thêm: RewriteRule ^ (. *) $ Http://newdomain.com/$1 [R = 301, L]

Dòng này sẽ lấy tất cả các tệp được yêu cầu tại miền cũ của bạn và thêm nó (có cùng tên tệp) vào URL của tên miền mới của bạn. Ví dụ: http://www.olddomain.com/filename sẽ được chuyển hướng đến http://www.newdomain.com/filename. R = 301 cho máy chủ biết rằng chuyển hướng là vĩnh viễn.

Giải pháp đó là hoàn hảo nếu bạn đã thực hiện toàn bộ trang web của mình và di chuyển nó, còn nguyên vẹn, sang một miền mới. Nhưng điều đó không xảy ra thường xuyên. Một trường hợp phổ biến hơn là miền mới của bạn có các tệp và thư mục mới. Nhưng bạn không muốn mất khách hàng nhớ tên miền và tệp cũ. Vì vậy, bạn nên thiết lập mod_rewrite để chuyển hướng tất cả các tệp cũ sang tên miền mới:

RewriteRule ^. * $ Http://newdomain.com/ [R = 301, L]

Cũng như quy tắc trước đó, R = 301 thực hiện chuyển hướng 301 này. Và L nói với máy chủ rằng đây là quy tắc cuối cùng.

Khi bạn đã thiết lập quy tắc ghi lại của mình trong tệp htaccess, trang web mới của bạn sẽ nhận được tất cả số lần truy cập trang từ URL cũ.