Công ty của tôi chỉ làm điều này với một số trang web lớn. Thủ tục cơ bản chúng tôi tuân theo là:
- Hạ thấp tên miền càng nhiều càng tốt. Làm điều này trước ít nhất là nhiều thời gian như TTL hiện tại.
- Thiết lập trang Web trên máy chủ mới chính xác như cách bạn muốn "sản phẩm cuối cùng" trở thành
- Thêm một tên bí danh vào trang web trên máy chủ mới, chẳng hạn như www2.domain.com hoặc www-new.domain.com. Với Apache, bạn sẽ sử dụng lệnh ServerAlias . Nếu trang web có bất kỳ mã động nào (PHP, mod_perl, RubyOnRails, v.v.), hãy chắc chắn rằng trang web sẽ hoạt động và phản hồi chính xác với tên mới này.
- Tại thời điểm cắt, thiết lập chuyển hướng trên máy chủ cũ trỏ đến máy chủ mới
- Thay đổi DNS cho www để chuyển sang IP mới.
Đối với Apache, có lẽ bạn nên sử dụng mod_rewrite cho chuyển hướng để bạn có thể bảo vệ các URI được khách hàng yêu cầu. Một cách thực hiện đơn giản sẽ là:
# old server
<VirtualHost 1.1.1.1:80>
ServerName www.domain.com
RewriteEngine on
RewriteRule ^(.*)$ http://www-new.domain.com$1 [L]
</VirtualHost>
# new server
<VirtualHost 1.1.1.2:80>
ServerName www.domain.com
ServerAlias www-new.domain.com
</VirtualHost>
Điều này sẽ thực hiện chuyển hướng tạm thời 302 cho www.domain.com/anything đến www-new.domain.com/anything. Bạn muốn nó là tạm thời bởi vì bạn có thể muốn các công cụ tìm kiếm chỉ lập chỉ mục www.domain.com, chứ không phải www-new.domain.com.
Khi thay đổi DNS cho www.domain.com đã lan truyền đến sự hài lòng của bạn, bạn có thể kết xuất hoàn toàn www-new hoặc nhẹ nhàng giúp bất kỳ ai sử dụng nó trở lại www với một chuyển hướng khác. Nó gần như là quá trình tương tự như trên; thiết lập máy chủ cũ để xử lý www-new, thay đổi DNS cho www-new để trỏ đến máy chủ cũ và thiết lập chuyển hướng trên máy chủ cũ gửi lưu lượng truy cập www-new đến www:
# old server
<VirtualHost 1.1.1.1:80>
ServerName www-new.domain.com
RewriteEngine on
RewriteRule ^(.*)$ http://www.domain.com$1 [R=301,L]
</VirtualHost>
# new server
<VirtualHost 1.1.1.2:80>
ServerName www.domain.com
# ServerAlias removed, no longer needed
</VirtualHost>
Lần này bạn muốn thực hiện chuyển hướng 301 vĩnh viễn, một lần nữa để tìm ra các trình thu thập thông tin của công cụ tìm kiếm rằng www.domain.com là trang web bạn muốn họ lập chỉ mục.