ERR_TOO_MANY_REDIRECTS: Cách Khắc Phục (Tất Cả Trình Duyệt)

ERR_TOO_MANY_REDIRECTS Là Gì?
ERR_TOO_MANY_REDIRECTS là lỗi trình duyệt xảy ra khi một trang web bị mắc kẹt trong vòng lặp chuyển hướng vô hạn. Thay vì tải trang, trình duyệt liên tục chuyển qua lại giữa các URL — và sau khi đạt đến giới hạn chuyển hướng, trình duyệt bỏ cuộc và hiển thị lỗi này.
Mỗi trình duyệt đều có giới hạn chuyển hướng tích hợp để ngăn các vòng lặp vô hạn tiêu tốn tài nguyên. Khi một trang vượt quá giới hạn đó, kết nối bị ngắt và thông báo lỗi được hiển thị.
| Trình duyệt | Thông báo lỗi | Giới hạn chuyển hướng |
|---|---|---|
| Chrome | This page isn't working — ERR_TOO_MANY_REDIRECTS | 20 lần |
| Firefox | The page isn't redirecting properly | 20 lần |
| Safari | Safari Can't Open the Page — too many redirects occurred | 16 lần |
| Edge | This page isn't working — ERR_TOO_MANY_REDIRECTS | 20 lần |
Mã trạng thái HTTP trong vòng lặp chuyển hướng thường là 301 (chuyển hướng vĩnh viễn) hoặc 302 (chuyển hướng tạm thời). Một vòng lặp điển hình như sau: trình duyệt yêu cầu URL A, máy chủ phản hồi bằng 301 đến URL B, URL B phản hồi bằng 301 quay lại URL A, và chu kỳ lặp lại cho đến khi trình duyệt đạt giới hạn.
Nguyên Nhân Gây Vòng Lặp Chuyển Hướng
Vòng lặp chuyển hướng xảy ra khi hai hoặc nhiều quy tắc chuyển hướng xung đột với nhau. Máy chủ gửi trình duyệt đến một URL, và URL đó gửi trình duyệt quay lại. Dưới đây là các nguyên nhân phổ biến nhất:
Cấu hình SSL/HTTPS sai — Nguyên nhân phổ biến nhất. Máy chủ của bạn ép chuyển từ HTTP sang HTTPS, nhưng CDN hoặc load balancer kết nối đến origin qua HTTP, tạo ra vòng lặp: CDN → HTTP → máy chủ chuyển hướng sang HTTPS → CDN bỏ HTTPS → HTTP → lặp lại
Cloudflare Flexible SSL — Chế độ Flexible SSL của Cloudflare gửi yêu cầu đến origin qua HTTP. Nếu origin cũng có chuyển hướng HTTP sang HTTPS, bạn sẽ có vòng lặp vô hạn giữa Cloudflare và máy chủ
Quy tắc .htaccess xung đột — Nhiều quy tắc chuyển hướng trong
.htaccessmâu thuẫn với nhau, ví dụ một quy tắc ép www và quy tắc khác ép non-www đồng thờiURL WordPress không khớp — WordPress Address (URL) và Site Address (URL) trong Settings > General không khớp, hoặc một cái dùng HTTP trong khi cái kia dùng HTTPS
Cookie trình duyệt cũ — Cookie cũ chứa hướng dẫn chuyển hướng hoặc dữ liệu phiên ép trình duyệt đến URL không còn tồn tại hoặc đã được di chuyển
CDN hoặc proxy cache chuyển hướng cũ — CDN của bạn đã cache một chuyển hướng 301 cũ giờ xung đột với cấu hình máy chủ hiện tại
Xung đột cấu hình máy chủ — File cấu hình Nginx hoặc Apache có các khối chuyển hướng cạnh tranh, như chuyển hướng đồng thời trong server block và .htaccess
Cách Chẩn Đoán Vòng Lặp Chuyển Hướng
Trước khi thử các cách sửa, hãy xác định chính xác chuỗi chuyển hướng. Điều này cho bạn biết chính xác URL nào liên quan và quy tắc chuyển hướng nào gây ra vòng lặp.
Phương pháp 1: Dùng curl để Theo Dõi Chuyển Hướng
Cách nhanh nhất để xem chuỗi chuyển hướng là dùng curl trong terminal. Cờ -I chỉ lấy header, -L theo dõi chuyển hướng, và --max-redirs giới hạn số lần theo dõi:
# Trace redirect chain (limit to 10 hops)
curl -ILs --max-redirs 10 https://example.com 2>&1 | grep -i 'HTTP/\|location:'
# Example output showing a redirect loop:
# HTTP/2 301
# location: http://example.com/
# HTTP/1.1 301 Moved Permanently
# Location: https://example.com/
# HTTP/2 301
# location: http://example.com/
# (repeats...)Nếu bạn thấy hai URL giống nhau luân phiên trong header Location, bạn đã xác nhận vòng lặp chuyển hướng. Chú ý các mã trạng thái HTTP — 301 là chuyển hướng vĩnh viễn (được trình duyệt cache), 302 là tạm thời (không cache).
Phương pháp 2: Tab Network trong DevTools Trình Duyệt
Bạn cũng có thể theo dõi chuyển hướng trực quan trong Chrome DevTools:
Bước 1 — Mở Chrome DevTools bằng
F12hoặcCtrl+Shift+I(Mac:Cmd+Option+I)Bước 2 — Chuyển sang tab Network và tích chọn Preserve log (giữ lại các mục qua các lần chuyển hướng)
Bước 3 — Tải trang gây ra lỗi
Bước 4 — Xem chuỗi các request. Mỗi chuyển hướng hiển thị như một mục riêng với trạng thái 301 hoặc 302. Cột Location cho biết mỗi chuyển hướng trỏ đến đâu
Tab Network hiển thị toàn bộ chuỗi chuyển hướng theo thứ tự thời gian. Bạn sẽ thấy mẫu — thường là hai hoặc ba URL lặp lại trong một chu kỳ. Sử dụng HTTP Headers Checker của DNS Robot để kiểm tra header phản hồi từ bên ngoài cache trình duyệt.
Phương pháp 3: Công Cụ Kiểm Tra Chuyển Hướng Trực Tuyến
Nếu bạn không có quyền truy cập terminal, hãy sử dụng Redirect Checker của DNS Robot để theo dõi toàn bộ chuỗi chuyển hướng. Nhập URL và công cụ sẽ hiển thị mọi bước nhảy, mã trạng thái và đích đến cuối cùng — hoặc xác nhận rằng vòng lặp tồn tại. Điều này hữu ích vì kiểm tra từ một vị trí trung lập mà không có cookie trình duyệt ảnh hưởng đến kết quả.
Cách Sửa 1: Xóa Cookie và Cache Trình Duyệt
Bắt đầu với cách sửa đơn giản nhất. Cookie cũ hoặc chuyển hướng được cache trong trình duyệt có thể gây ra vòng lặp ngay cả khi cấu hình máy chủ đã đúng. Điều này đặc biệt phổ biến sau khi trang web chuyển từ HTTP sang HTTPS — cookie cũ có thể vẫn tham chiếu đến URL HTTP.
Xóa Cookie trong Chrome
Xóa cookie cho trang web cụ thể thay vì tất cả cookie — điều này giữ nguyên đăng nhập trên các trang khác:
Bước 1 — Nhấp vào biểu tượng ổ khóa (hoặc biểu tượng điều chỉnh) trên thanh địa chỉ bên cạnh URL
Bước 2 — Nhấp Site settings
Bước 3 — Nhấp Clear data để xóa cookie và dữ liệu cache chỉ cho trang web đó
Bước 4 — Tải lại trang
# Chrome keyboard shortcut to open Clear Browsing Data:
# Windows/Linux: Ctrl + Shift + Delete
# macOS: Cmd + Shift + DeleteHoặc vào chrome://settings/clearBrowserData, chọn Cookies and other site data và Cached images and files, đặt khoảng thời gian thành All time, rồi nhấp Clear data.
Xóa Cookie trong Firefox và Safari
Firefox: Nhấn Ctrl+Shift+Delete (Mac: Cmd+Shift+Delete), chọn Cookies và Cache, đặt khoảng thời gian thành Everything, rồi nhấp Clear Now.
Safari: Vào Safari > Settings > Privacy > Manage Website Data, tìm tên miền bị ảnh hưởng, chọn và nhấp Remove. Sau đó xóa cache bằng Cmd+Option+E.
Cách Sửa 2: Kiểm Tra Cấu Hình SSL/HTTPS
Cấu hình SSL sai là nguyên nhân #1 gây vòng lặp chuyển hướng. Tình huống phổ biến nhất là xung đột giữa CDN/proxy và máy chủ origin về việc sử dụng HTTP hay HTTPS.
Đây là điều thường xảy ra: CDN kết nối đến origin qua HTTP (vì CDN xử lý SSL termination), nhưng origin có chuyển hướng HTTP sang HTTPS. Origin gửi CDN quay lại HTTPS, CDN bỏ đi và gửi HTTP lần nữa — vòng lặp vô hạn.
Kiểm tra chứng chỉ SSL — Sử dụng SSL Checker của DNS Robot để xác minh chứng chỉ hợp lệ, chưa hết hạn và bao phủ đúng tên miền
Khớp giao thức — Nếu CDN xử lý SSL termination, hãy xóa chuyển hướng HTTP sang HTTPS trên origin, hoặc cấu hình CDN kết nối đến origin qua HTTPS
Kiểm tra cài đặt ép HTTPS — Nếu bạn có cả chuyển hướng ở cấp máy chủ (Nginx/Apache) VÀ ép HTTPS ở cấp CDN, hãy xóa một trong hai
Xác minh header X-Forwarded-Proto — Khi đứng sau proxy, origin nên kiểm tra header này thay vì giao thức kết nối thô để xác định liệu yêu cầu ban đầu có phải là HTTPS không
Cách Sửa 3: Sửa Vòng Lặp Chuyển Hướng Cloudflare
Cloudflare là nguyên nhân phổ biến nhất gây ERR_TOO_MANY_REDIRECTS do cách hoạt động của các chế độ SSL. Cách sửa phụ thuộc vào chế độ mã hóa SSL/TLS bạn đang sử dụng.
| Chế độ SSL | Cách kết nối đến Origin | Gây vòng lặp khi... |
|---|---|---|
| Flexible | HTTP (không mã hóa) | Origin có chuyển hướng HTTP→HTTPS |
| Full | HTTPS (không xác minh chứng chỉ) | Origin chuyển hướng HTTPS→HTTP |
| Full (Strict) | HTTPS (xác minh chứng chỉ) | Origin chuyển hướng HTTPS→HTTP |
Cách sửa cho 90% vòng lặp chuyển hướng Cloudflare: thay đổi chế độ mã hóa SSL/TLS từ Flexible sang Full hoặc Full (Strict). Điều này yêu cầu Cloudflare kết nối đến origin qua HTTPS, loại bỏ vòng lặp HTTP sang HTTPS.
Hướng Dẫn Sửa Cloudflare Từng Bước
Bước 1 — Đăng nhập vào Cloudflare dashboard
Bước 2 — Chọn tên miền của bạn
Bước 3 — Vào SSL/TLS > Overview
Bước 4 — Đổi chế độ mã hóa sang Full (Strict) nếu bạn có chứng chỉ SSL hợp lệ trên origin, hoặc Full nếu dùng chứng chỉ tự ký
Bước 5 — Vào SSL/TLS > Edge Certificates và kiểm tra Always Use HTTPS có bật không. Nếu origin đã chuyển hướng sang HTTPS, hãy tắt tùy chọn này để tránh chuyển hướng kép
Bước 6 — Kiểm tra Page Rules và Redirect Rules xem có chuyển hướng URL xung đột không
Bước 7 — Xóa cache Cloudflare: vào Caching > Configuration > Purge Everything
Cách Sửa 4: Sửa Quy Tắc Chuyển Hướng .htaccess (Apache)
Trên máy chủ Apache, .htaccess là nơi phổ biến nhất chứa quy tắc chuyển hướng — và cũng là nơi phổ biến nhất khởi phát vòng lặp chuyển hướng. Các quy tắc xung đột, chuyển hướng trùng lặp, hoặc thiếu kiểm tra điều kiện đều có thể tạo vòng lặp.
Kiểm tra chuyển hướng HTTPS trùng lặp — Nếu bảng điều khiển hosting (cPanel, Plesk) ép HTTPS, hãy xóa chuyển hướng thủ công khỏi .htaccess
Kiểm tra điều kiện RewriteCond — Mỗi RewriteRule chuyển hướng nên có RewriteCond ngăn nó kích hoạt trên URL đã khớp. Không có điều này, quy tắc sẽ chạy trên mọi request kể cả request đã bị chuyển hướng
Chú ý cờ [L] — Cờ
[L]nghĩa là 'quy tắc cuối cùng' nhưng chỉ cho lượt xử lý hiện tại. Nếu có.htaccesskhác trong thư mục con, nó sẽ chạy lại. Sử dụng[END]trên Apache 2.4+ thay thếKiểm tra header proxy — Đứng sau CDN, hãy dùng
%{HTTP:X-Forwarded-Proto}thay vì%{HTTPS}để phát hiện giao thức gốc
# Correct HTTPS redirect behind Cloudflare/CDN:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L]Nếu không chắc quy tắc nào gây vòng lặp, tạm đổi tên .htaccess thành .htaccess.bak và kiểm tra xem trang có tải không. Nếu tải được, vấn đề nằm trong file .htaccess. Bật lại từng quy tắc một cho đến khi tìm ra quy tắc gây lỗi.
Cách Sửa 5: Sửa Vòng Lặp Chuyển Hướng WordPress
Vòng lặp chuyển hướng WordPress thường đến từ ba nguồn: URL không khớp trong Settings, xung đột plugin, hoặc giá trị wp-config.php sai. Nếu bạn không thể truy cập bảng điều khiển WordPress do vòng lặp chuyển hướng, bạn cần sửa trực tiếp qua cơ sở dữ liệu hoặc file cấu hình.
Kiểm Tra Cài Đặt URL WordPress
WordPress có hai cài đặt URL phải khớp nhau: WordPress Address (URL) và Site Address (URL) trong Settings > General. Nếu một cái dùng http:// và cái kia dùng https://, hoặc một cái có www. còn cái kia thì không, bạn sẽ gặp vòng lặp chuyển hướng.
Nếu không truy cập được bảng điều khiển, hãy ghi cứng URL trong wp-config.php:
// Add these lines to wp-config.php (above "That's all, stop editing!"):
define('WP_HOME', 'https://example.com');
define('WP_SITEURL', 'https://example.com');
// If behind a reverse proxy (Cloudflare, Nginx proxy):
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
$_SERVER['HTTPS'] = 'on';
}Tắt Plugin Để Tìm Xung Đột
Plugin chuyển hướng và cache thường là thủ phạm. Các plugin như Redirection, Yoast SEO, Really Simple SSL, WP Super Cache và W3 Total Cache đều có thể thêm quy tắc chuyển hướng xung đột với cài đặt máy chủ hoặc CDN.
Nếu không truy cập được bảng điều khiển, hãy tắt tất cả plugin qua FTP hoặc SSH:
# Rename the plugins folder to disable all plugins at once:
cd /var/www/html/wp-content/
mv plugins plugins.bak
# If the site loads, rename it back and disable plugins one by one:
mv plugins.bak plugins
# Then rename individual plugin folders to find the culprit:
mv plugins/really-simple-ssl plugins/really-simple-ssl.bakNếu tắt plugin sửa được lỗi, bật lại từng cái một để xác định plugin gây xung đột. Thủ phạm phổ biến nhất là plugin SSL thêm chuyển hướng HTTP sang HTTPS khi máy chủ hoặc CDN đã xử lý việc này.
Cách Sửa 6: Sửa Chuyển Hướng Cấp Máy Chủ (Nginx & Apache)
File cấu hình máy chủ có thể chứa quy tắc chuyển hướng xung đột với chuyển hướng cấp ứng dụng (WordPress, .htaccess) hoặc cài đặt CDN.
Nginx: Kiểm Tra Xung Đột Chuyển Hướng
Vòng lặp chuyển hướng Nginx thường xảy ra khi server block HTTP chuyển hướng sang HTTPS, nhưng có gì đó trong khối HTTPS chuyển hướng ngược lại HTTP. Kiểm tra cấu hình trang web:
# Correct Nginx HTTPS redirect (separate server blocks):
server {
listen 80;
server_name example.com www.example.com;
return 301 https://example.com$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
# SSL certificate configuration here
# DO NOT add another redirect to HTTPS here
}
# If behind Cloudflare/proxy, check real protocol:
server {
listen 80;
server_name example.com;
if ($http_x_forwarded_proto != 'https') {
return 301 https://example.com$request_uri;
}
}Apache: Kiểm Tra Chuyển Hướng VirtualHost
Trên Apache, kiểm tra cả cấu hình VirtualHost và .htaccess. Chuyển hướng trong cấu hình VirtualHost cộng với chuyển hướng trong .htaccess tạo ra chuyển hướng kép có thể gây vòng lặp:
# Check Apache config for redirect rules:
grep -r 'Redirect\|RewriteRule' /etc/apache2/sites-enabled/
grep -r 'Redirect\|RewriteRule' /etc/httpd/conf.d/
# Check .htaccess:
cat /var/www/html/.htaccess | grep -i 'rewrite\|redirect'Xóa các chuyển hướng trùng lặp — chỉ giữ chuyển hướng ở một nơi. Thực hành tốt nhất là xử lý chuyển hướng HTTPS trong cấu hình VirtualHost (không phải .htaccess) vì quy tắc VirtualHost được xử lý một lần mỗi request trong khi .htaccess được xử lý ở mọi request.
Cách Sửa 7: Xử Lý Sự Cố Theo Trình Duyệt
Nếu lỗi chỉ xuất hiện trên một trình duyệt, vấn đề có thể là chuyển hướng đã cache hoặc xung đột tiện ích mở rộng, chứ không phải vấn đề máy chủ.
Chrome: Xóa HSTS và Socket Pool
Chrome cache chính sách HSTS (HTTP Strict Transport Security) ép dùng HTTPS. Nếu một trang web trước đó gửi header HSTS nhưng không còn sử dụng HTTPS đúng cách, Chrome sẽ tiếp tục chuyển hướng sang HTTPS ngay cả sau khi bạn đã xóa cookie.
Xóa cache HSTS — Vào
chrome://net-internals/#hsts, nhập tên miền dưới Delete domain security policies, rồi nhấp DeleteFlush socket pools — Vào
chrome://net-internals/#socketsvà nhấp Flush socket pools để xóa các kết nối đã cacheXóa cache DNS — Vào
chrome://net-internals/#dnsvà nhấp Clear host cacheTest ở chế độ Ẩn danh — Mở cửa sổ Ẩn danh (
Ctrl+Shift+N) và thử URL. Nếu hoạt động ở chế độ Ẩn danh nhưng không ở cửa sổ thường, nguyên nhân là chuyển hướng đã cache hoặc tiện ích mở rộng
Cách Sửa Firefox và Safari
Firefox: Gõ about:config vào thanh địa chỉ, tìm network.http.redirection-limit, và xác nhận giá trị là 20 (mặc định). Nếu tiện ích mở rộng đổi thành số rất thấp, chuyển hướng có thể thất bại sớm. Cũng thử xóa dữ liệu trang web: Settings > Privacy & Security > Manage Data > tìm tên miền > Remove Selected.
Safari: Safari hiển thị "too many redirects occurred" và đưa ra lỗi ít chi tiết hơn Chrome. Vào Safari > Settings > Privacy > Manage Website Data, tìm tên miền và xóa dữ liệu. Nếu vấn đề vẫn tiếp tục, thử Safari > Clear History (chọn tất cả lịch sử).
Cách Ngăn Ngừa Vòng Lặp Chuyển Hướng
Sau khi đã sửa lỗi, hãy tuân theo các nguyên tắc sau để ngăn vòng lặp chuyển hướng xảy ra lần nữa:
Chỉ chuyển hướng ở một nơi — Chọn một tầng cho chuyển hướng HTTPS: CDN, web server, hoặc ứng dụng. Đừng bao giờ chuyển hướng ở nhiều tầng cùng lúc
Dùng 302 khi testing — Trong quá trình debug, dùng chuyển hướng 302 (tạm thời) thay vì 301 (vĩnh viễn). Trình duyệt cache 301 rất mạnh, gây khó khăn cho việc test thay đổi. Chuyển sang 301 khi đã xác nhận chuyển hướng hoạt động đúng
Luôn test với curl — Sau khi thêm quy tắc chuyển hướng, chạy
curl -ILs https://yoursite.com | grep -i 'HTTP/\|location:'để xác minh chuỗi chuyển hướng kết thúc bằng phản hồi 200Giám sát bằng công cụ — Sử dụng HTTP Headers Checker của DNS Robot thường xuyên để xác minh trang web trả về phản hồi 200 sạch không có chuyển hướng bất ngờ
Ghi chép các chuyển hướng — Lưu lại tất cả quy tắc chuyển hướng trong cấu hình server, .htaccess, quy tắc CDN và cài đặt ứng dụng. Khi nhiều thành viên nhóm quản lý trang web, chuyển hướng không được ghi chép là nguyên nhân #1 gây vòng lặp
Xóa cache CDN sau khi thay đổi — Sau khi chỉnh sửa bất kỳ quy tắc chuyển hướng nào, hãy xóa cache CDN ngay lập tức. 301 đã cache có thể tồn tại nhiều ngày
Tác Động Của Vòng Lặp Chuyển Hướng Đến SEO
Vòng lặp chuyển hướng gây hại trực tiếp đến thứ hạng tìm kiếm. Crawler của Google (Googlebot) theo dõi tối đa 10 chuyển hướng mỗi URL trước khi bỏ cuộc. Nếu Googlebot gặp vòng lặp chuyển hướng, nó đánh dấu trang là lỗi crawl và ngừng index.
Theo tài liệu của Google về chuyển hướng, chuỗi chuyển hướng nên càng ngắn càng tốt. Mỗi bước nhảy chuyển hướng thêm khoảng 100-500ms độ trễ và lãng phí crawl budget — số trang Google sẽ crawl trên trang web của bạn mỗi ngày.
Mất index — Các trang bị mắc kẹt trong vòng lặp chuyển hướng không được index và biến mất hoàn toàn khỏi kết quả tìm kiếm
Lãng phí crawl budget — Googlebot dùng crawl budget giới hạn để theo dõi chuyển hướng thay vì crawl nội dung thực sự
Phạt tốc độ trang — Mỗi chuyển hướng 301 thêm một vòng khứ hồi đầy đủ (100-500ms). Ba chuyển hướng có thể thêm hơn một giây vào thời gian tải
Suy giảm link equity — Backlink trỏ đến URL bị chuyển hướng mất khoảng 1-5% giá trị PageRank mỗi bước nhảy
Câu Hỏi Thường Gặp
Kiểm tra chuỗi chuyển hướng ngay bây giờ
Sử dụng Redirect Checker miễn phí của DNS Robot để theo dõi mọi bước nhảy trong chuỗi chuyển hướng và phát hiện vòng lặp ngay lập tức. Kiểm tra thêm header HTTP và trạng thái chứng chỉ SSL.
Try Redirect CheckerFrequently Asked Questions
ERR_TOO_MANY_REDIRECTS nghĩa là trình duyệt phát hiện vòng lặp chuyển hướng vô hạn. Trang web liên tục gửi trình duyệt qua lại giữa các URL mà không bao giờ tải trang. Chrome và Firefox cho phép tối đa 20 chuyển hướng trước khi hiển thị lỗi, còn Safari cho phép khoảng 16.