Chuyển đến nội dung

Vòng lặp chuyển hướng đăng nhập WordPress: Cách vào lại wp-admin

Trang đăng nhập tải lại liên tục hoặc báo "too many redirects"? Sửa cookie, URL trang, thiết lập HTTPS và Cloudflare, plugin cùng .htaccess để vào lại wp-admin.

Business owner reviewing her website on a laptop

Bạn nhập tên người dùng và mật khẩu trên trang đăng nhập WordPress, bấm Log In, rồi bị đưa thẳng về trang đăng nhập. Không có lỗi, không có thông báo, chỉ lại đúng biểu mẫu đó. Hoặc trình duyệt báo “This page isn’t working: redirected you too many times” (ERR_TOO_MANY_REDIRECTS).

Vòng lặp chuyển hướng đăng nhập này gần như luôn do cookie, URL trang sai, cấu hình HTTPS chưa đúng, hoặc một plugin. Đây là cách thoát ra.

WordPress giữ bạn ở trạng thái đăng nhập bằng cookie. Nếu một cookie cũ hoặc bị hỏng còn lưu, WordPress sẽ liên tục từ chối cookie đó.

  • Mở cửa sổ riêng tư hoặc ẩn danh và thử đăng nhập ở đó.
  • Nếu đăng nhập được, hãy xóa cookie và bộ nhớ đệm của trang này trong trình duyệt thường dùng.
  • Đảm bảo trình duyệt không chặn cookie đối với tên miền của bạn.

Bước 2: Kiểm tra WordPress Address và Site Address

Nếu hai URL mà WordPress dùng cho trang không khớp với cách bạn truy cập, cookie được đặt cho địa chỉ này nhưng lại được kiểm tra ở địa chỉ kia. Những chỗ lệch thường gặp là www với bản không có www, và http với https.

Bạn không sửa được các giá trị này trong wp-admin nếu không đăng nhập được, nên hãy đặt chúng trong wp-config.php, phía trên “That’s all, stop editing”:

define( 'WP_HOME', 'https://www.example.com' );
define( 'WP_SITEURL', 'https://www.example.com' );

Dùng đúng địa chỉ mà trang của bạn cần tải, có hoặc không có www, và dùng https nếu bạn đã có chứng chỉ SSL. Sau đó hãy thử đăng nhập lại.

Bước 3: Sửa xung đột chuyển hướng HTTPS

“Too many redirects” thường nghĩa là hai hệ thống đang chuyển hướng ngược chiều nhau. Ví dụ, WordPress đưa khách sang HTTPS trong khi proxy hoặc CDN đưa họ về HTTP.

  • Cloudflare: nếu chế độ SSL/TLS đang là Flexible, Cloudflare kết nối tới máy chủ của bạn qua HTTP trong khi WordPress yêu cầu HTTPS. Hãy đặt thành Full hoặc Full (strict) khi máy chủ đã có chứng chỉ.
  • Đứng sau proxy hoặc bộ cân bằng tải: WordPress có thể không nhận ra HTTPS. Thêm đoạn này vào wp-config.php, phía trên phần cài đặt WordPress:
    if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' === $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
        $_SERVER['HTTPS'] = 'on';
    }
  • Quy tắc chuyển hướng bị trùng: kiểm tra .htaccess và bảng điều khiển hosting xem có chuyển hướng HTTPS hoặc www nào xung đột với plugin SSL không. Chỉ giữ một bộ quy tắc.

Bước 4: Tắt các plugin ảnh hưởng đến đăng nhập

Plugin bảo mật, plugin tùy biến trang đăng nhập, plugin xác thực hai yếu tố, plugin thành viên và plugin bộ nhớ đệm đều có thể can thiệp vào quá trình đăng nhập. Khi không vào được wp-admin:

  1. Trong File Manager hoặc SFTP, vào wp-content/plugins/.
  2. Đổi tên thư mục plugins thành plugins-off.
  3. Thử đăng nhập. Nếu được, đổi tên thư mục lại và kích hoạt lại từng plugin một để tìm thủ phạm.

Đồng thời kiểm tra plugin bộ nhớ đệm hoặc cache của máy chủ không được cache /wp-login.php hoặc /wp-admin/. Hai đường dẫn này không bao giờ được đưa vào bộ nhớ đệm.

Bước 5: Loại trừ theme

Hiếm khi, functions.php của theme chứa mã chuyển hướng làm hỏng đăng nhập. Đổi tên thư mục theme đang dùng trong wp-content/themes/ để WordPress quay về theme mặc định, rồi thử lại.

Bước 6: Đặt lại tệp .htaccess

Tệp .htaccess bị hỏng hoặc quá phức tạp có thể gây vòng lặp chuyển hướng. Đổi tên thành .htaccess-old và tạo tệp mới chứa các quy tắc WordPress chuẩn:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

Nếu trang nằm trong thư mục con, hãy chỉnh RewriteBase và quy tắc cuối. Thêm lại từng quy tắc bảo mật hoặc chuyển hướng từ tệp cũ, từng cái một.

  • Đảm bảo đồng hồ máy chủ đúng giờ. Cookie trông như đã hết hạn có thể bị từ chối nếu giờ lệch quá xa.
  • Nếu bạn đã định nghĩa COOKIE_DOMAIN trong wp-config.php, hãy chắc chắn giá trị khớp với tên miền của trang, hoặc xóa hằng số đó.
  • Kiểm tra máy chủ còn dung lượng đĩa trống. Đĩa đầy có thể khiến phiên không được lưu.

Vẫn bị khóa bên ngoài? Dịch vụ WordPress Fix của chúng tôi đưa bạn vào lại wp-admin và sửa vấn đề chuyển hướng hoặc đăng nhập từ gốc. Giá cố định $45, được xác nhận trước khi bắt đầu. Yêu cầu sửa.

Câu hỏi thường gặp

Vì sao vòng lặp bắt đầu sau khi tôi cài chứng chỉ SSL?

URL của trang vẫn dùng http, hoặc CDN hay proxy đang chuyển hướng theo chiều ngược lại. Hãy đặt cả hai URL thành https và sửa chế độ SSL của CDN. Hướng dẫn sửa mixed content sau khi chuyển sang HTTPS của chúng tôi nói nốt phần còn lại.

Tôi có đặt lại mật khẩu được không nếu trang đăng nhập cứ tải lại?

Đặt lại mật khẩu không sửa vòng lặp chuyển hướng, vì vòng lặp liên quan đến cookie và URL, không phải mật khẩu của bạn. Hãy sửa nguyên nhân trước.

Vòng lặp chuyển hướng đăng nhập có phải dấu hiệu bị hack không?

Thường thì không. Nhưng nếu bạn thấy mã chuyển hướng lạ trong .htaccess hoặc tệp theme, hãy đọc hướng dẫn việc cần làm nếu trang WordPress bị hack.

Vẫn đang kẹt? Chúng tôi có thể sửa giúp bạn

Cho chúng tôi biết chuyện đang xảy ra. Chúng tôi xác nhận phạm vi và giá trước khi bất kỳ công việc nào bắt đầu.