Bạn muốn thay đổi tên miền cho website WordPress sang một tên miền mới? Bài này hướng dẫn bạn một số cách giúp bạn làm điều đó dễ dàng.
Thông thường, việc di chuyển một website WordPress sang một nhà cung cấp hosting mới thì không cần phải thay đổi tên miền. Bạn chỉ cần di chuyển các tệp tin và các thư mục cần thiết, xuất và nhập cơ sở dữ liệu (database) sang nhà cung cấp mới, sau đó trỏ tên miền về địa chỉ IP mới. Nhưng nếu bạn muốn sử dụng một tên miền khác thì bạn phải thực hiện việc khai báo tên miền đó bằng cách thiết lập trong wp-config.php
hoặc thay tên miền trong cơ sở dữ liệu.
Dưới đây mình sẽ giới thiệu một số phương pháp có thể giúp bạn dễ dàng thay đổi tên miền cho website WordPress, tùy vào trường hợp mà bạn phải lựa chọn một hoặc nhiều phương pháp phù hợp.
Thay đổi tên miền trong WP-Admin
Đây là phương pháp đơn giản và trực quan nhất, chỉ cần truy cập vào WP-Admin, tại Settings -> General (Cài đặt -> Tổng quan), nhập tên miền mới vào hai hộp thoại Địa chỉ WordPress (URL) (WordPress Address (URL)) và Địa chỉ trang web (URL) (Site Address (URL)) sau đó lưu lại.
Đối với Multisite, bạn có thể thay đổi tên miền cho từng site con từ trang Mạng (Network). Truy cập My Sites -> Network Admin -> Sites, chọn một trang con sau đó chọn tiếp Settings, nhập tên miền mới vào hai hộp thoại siteurl và home sau đó lưu lại. Nếu bạn muốn thay đổi tên miền của Site chính, bạn nên thay đổi các tùy chọn trong cơ sở dữ liệu.
Phương pháp này không sử dụng được nếu như bạn không thể truy cập vào trang WP-Admin bằng tên miền hiện tại của trang.
Chỉnh sửa wp-config.php
Có thể thiết lập URL trang web theo cách thủ công trong wp-config.php
. Thêm hai dòng này vào wp-config.php
, trong đó “example.com
” là vị trí chính xác của trang web của bạn.
define( 'WP_HOME', 'https://example.com' );
define( 'WP_SITEURL', 'https://example.com' );
Đây không hẳn là cách sửa lỗi tốt nhất, nó chỉ là mã hóa cứng các giá trị vào chính trang web. Các giá trị này không được cập nhật vào cơ sở dữ liệu, vì vậy URL cũ sẽ được sử dụng nếu bạn xóa hai dòng này. Bạn sẽ không thể chỉnh sửa chúng trên trang Cài đặt chung nữa khi sử dụng phương pháp này. Phương pháp này cũng không áp dụng cho Multisite.
Chỉnh sửa functions.php
Nếu bạn có thể truy cập vào trang web thông qua FTP, thì phương pháp này sẽ giúp bạn nhanh chóng khôi phục và chạy lại trang web nếu bạn thay đổi những giá trị đó không chính xác. Bạn có thể sử dụng bất kỳ phương pháp nào để có thể sửa đổi được tệp tin trên thư mục nơi bạn lưu trữ trang web, ở đây mình dùng FTP.
- Truy cập thư mục trang web thông qua FTP và lấy một bản sao của tệp
functions.ph
p của theme đang kích hoạt. Bạn sẽ chỉnh sửa nó trong một trình soạn thảo văn bản đơn giản và tải nó trở lại trang web. - Thêm hai dòng này vào tệp ngay sau
<?php
dòng đầu tiên:
update_option( 'siteurl', 'https://example.com' );
update_option( 'home', 'https://example.com' );
Rõ ràng là hãy sử dụng URL của riêng bạn thay vì example.com
.
- Tải tệp trở lại trang web của bạn, ở cùng một vị trí. FileZilla cung cấp chức năng “chỉnh sửa tệp” tiện dụng để thực hiện tất cả các thao tác trên một cách nhanh chóng; nếu bạn có thể sử dụng chức năng đó, hãy thực hiện.
- Tải trang đăng nhập hoặc trang quản trị một vài lần. Trang web sẽ hoạt động trở lại.
- Quan trọng! Không để lại mã này trong tệp
functions.php
. Hãy xóa chúng sau khi trang web hoạt động trở lại.
Lưu ý: Nếu chủ đề của bạn không có functions.php
, hãy tạo tệp mới bằng trình soạn thảo văn bản. Thêm <?php
thẻ và hai dòng bằng URL của riêng bạn thay vì example.com
:
<?php
update_option( 'siteurl', 'https://example.com' );
update_option( 'home', 'https://example.com' );
Tải tệp này lên thư mục theme của bạn. Phương pháp này sẽ cập nhật lại giá trị trong cơ sở dữ liệu nên bạn cần phải xóa mã sau khi trang web hoạt động trở lại. Phương pháp này cũng không áp dụng cho Multisite.
Thay đổi tên miền trong phpMyAdmin
Bạn có thể sửa đổi tên miền và nhiều giá trị khác từ cơ sở dữ liệu bằng bất kỳ phương thức nào. Chẳng hạn, sử dụng chế độ dòng lệnh MySQL, hoặc xuất cơ sở dữ liệu, sau đó mở tệp và sửa đổi sau đó nhập cơ sở dữ liệu trở lại. Ở đây mình sẽ sử dụng phpMyAdmin để sửa đổi cơ sở dữ liệu một cách dễ dàng và trực quan nhất.
Phương pháp này áp dụng được cho cả Singlesite và Multisite, ngoài ra có nhiều giá trị khác cần phải được sửa đổi bằng phương pháp này. Nhanh hơn và dễ dàng hơn.
Đối với website WordPress 1 site, bạn truy cập vào cơ sở dữ liệu sau đó tiếp tục truy cập vào bảng wp_options. Tiền tố wp_
có thể khác tùy thuộc vào việc cài đặt ban đầu và các thay đổi của bạn, nhưng bạn cứ tìm bảng có chứa _options nhé. Sau đó sửa đổi giá trị trong các mục “siteurl” và “home” và lưu lại.
Đối với Multisite, bạn truy cập vào cơ sở dữ liệu sau đó tiếp tục truy cập vào bảng wp_x_options. Tiền tố wp_
có thể khác tùy thuộc vào việc cài đặt ban đầu và các thay đổi của bạn. Với Multisite thì sẽ có các bảng cơ sở dữ liệu riêng cho từng site, nên bạn phải tìm kiếm tất cả các bảng có chứa _options nhé cho đến khi tìm thấy bảng phù hợp. Sau đó sửa đổi giá trị trong các mục “siteurl” và “home” và lưu lại.
Nhiều giá trị khác mà bạn cũng cần phải thay đổi để các chức năng hoạt động bình thường, chẳng hạn giá trị của fileupload_url
(nếu có).
Thay đổi các thứ liên quan
Sau khi bạn đã thực hiện việc thay đổi tên miền cho website WordPress tại các mục cơ bản để website có thể chạy thì bạn cũng nên đảm bảo mọi thứ đều tốt. Chẳng hạn các liên kết cứng đến tên miền của bài viết hoặc hình ảnh cũ cũng cần phải được thay đổi.
Rõ ràng chúng ta khó có thể nhớ được ở đâu có chứa các liên kết cũ để sửa, nếu trang web của bạn có càng nhiều bài viết thì điều này càng tốn gian để kiểm tra và sửa đổi. Trong trường hợp này, mình sẽ ưu tiên sửa đổi cơ sở dữ liệu trực tiếp hoặc thông qua phpMyAdmin. Cách nhanh nhất là các bạn có thể xuất tệp SQL, mở ra và tiến hành Tìm kiếm và Thay thế, sau đó nhập cơ sở dữ liệu trở lại. Hoặc sử dụng chức năng Tìm kiếm của phpMyAdmin để tìm kiếm và sau đó sửa đổi các giá trị mà bạn tìm được. Nhưng đừng quên giữ một bản sao lưu để có thể phục hồi nếu việc sửa đổi xãy ra vấn đề.
Cuối cùng, sau khi tên miền đã được thay đổi, trỏ tên miền mới vào IP nếu việc này chưa được thực hiện. Chúc bạn thành công!