ERR_TOO_MANY_REDIRECTS: cách khắc phục (tất cả trình duyệt)
Điểm chính
ERR_TOO_MANY_REDIRECTS (Chrome tiếng Việt báo "đã chuyển hướng bạn quá nhiều lần", tiếng Anh là "redirected you too many times") nghĩa là trang web đã chuyển hướng trình duyệt của bạn hơn 20 lần mà không tải được, giới hạn chung của Chrome, Edge, Firefox và Safari. Người truy cập sửa lỗi bằng cách xóa cookie của trang đó. Chủ trang web sửa bằng cách chỉ ép HTTPS (và www) ở một nơi duy nhất: phần lớn vòng lặp là do chế độ Flexible SSL của Cloudflare cộng với chuyển hướng HTTPS trên máy chủ.
Kiểm tra ngay

Bắt đầu đọc
- ERR_
TOO_ MANY_ REDIRECTS là gì? - Nguyên nhân gây vòng lặp chuyển hướng
- Cách chẩn đoán vòng lặp chuyển hướng
- Cách sửa 1: xóa cookie và cache trình duyệt
- Cách sửa 2: kiểm tra cấu hình SSL/HTTPS
- Cách sửa 3: sửa vòng lặp chuyển hướng Cloudflare
- Cách sửa 4: sửa quy tắc chuyển hướng .htaccess (Apache)
- Cách sửa 5: sửa vòng lặp chuyển hướng WordPress
- Cách sửa 6: sửa chuyển hướng cấp máy chủ (Nginx & Apache)
- Cách sửa 7: xử lý sự cố theo trình duyệt
- Cách sửa 8: vòng lặp chuyển hướng đăng nhập trong ứng dụng web
- Cách ngăn ngừa vòng lặp chuyển hướng
- Tác động của vòng lặp chuyển hướng đến SEO
- Câu hỏi thường gặp
ERR_TOO_MANY_REDIRECTS là gì?
ERR_TOO_MANY_REDIRECTS nghĩa là trang web đã chuyển trình duyệt của bạn sang địa chỉ khác hơn 20 lần mà không tải được: một vòng lặp chuyển hướng. Chrome tiếng Việt hiển thị "Trang này hiện không hoạt động" và "example.com đã chuyển hướng bạn quá nhiều lần."; Chrome tiếng Anh hiển thị "This page isn't working. example.com redirected you too many times"; Edge hiển thị một trang tương tự với cùng mã lỗi. Firefox báo "Trang này không chuyển hướng đúng cách", còn Safari báo "too many redirects occurred".
Nếu bạn chỉ là người truy cập, hãy xóa cookie của trang đó rồi tải lại: cookie cũ là nguyên nhân thường gặp khi trang vẫn hoạt động bình thường với mọi người khác. Nếu đó là trang web của bạn, vòng lặp gần như luôn do HTTPS (hoặc www) bị ép ở hai nơi cùng lúc, thường nhất là chế độ Flexible SSL của Cloudflare cộng với chuyển hướng HTTPS trên máy chủ.
Kiểm tra chuỗi chuyển hướng ngay bây giờ
| Trình duyệt | Thông báo hiển thị | Số lần chuyển hướng tối đa |
|---|---|---|
| Chrome | Trang này hiện không hoạt động (This page isn't working) · ERR_TOO_MANY_REDIRECTS | 20 (kMaxRedirects của Chromium) |
| Edge | Một trang lỗi tương tự · ERR_TOO_MANY_REDIRECTS | 20 (Chromium) |
| Firefox | Trang này không chuyển hướng đúng cách (The page isn't redirecting properly) | 20 (network.http.redirection-limit) |
| Safari | Safari Can't Open the Page · too many redirects occurred | 20 (Web Inspector: "Load cannot follow more than 20 redirections") |
| Console DevTools của Chrome và Edge | net::ERR_TOO_MANY_REDIRECTS | 20 (cũng là giới hạn của Fetch Standard) |
Giới hạn giống nhau ở mọi nơi vì Fetch Standard mà các trình duyệt tuân theo quy định: "nếu số lần chuyển hướng của request là 20 thì trả về lỗi mạng". Bản thân vòng lặp thường là hai phản hồi 301 hoặc 302 trỏ vào nhau: URL A đưa bạn đến URL B, URL B đưa bạn quay lại A, và trình duyệt dừng đếm ở 20.
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ời - URL 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
- Vòng lặp đăng nhập trong ứng dụng — trang đăng nhập chuyển hướng người chưa đăng nhập về chính nó, hoặc cookie phiên mà trình duyệt từ chối lưu (OAuth, Supabase Auth, NextAuth). Xem Cách Sửa 8
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ú ý mã trạng thái: 301 là chuyển hướng vĩnh viễn mà trình duyệt lưu cache, còn 302 là chuyển hướng tạm thời, không được cache trừ khi phản hồi yêu cầu.
Chú ý giao thức trong mỗi header Location: vòng lặp giữa phiên bản http:// và https:// của cùng một URL là mẫu phổ biến nhất, và nó chỉ thẳng vào một cài đặt SSL.
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 công cụ Kiểm tra HTTP Header 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 không có terminal, hãy dán URL vào công cụ Kiểm tra Redirect của DNS Robot. Công cụ đi theo từng bước chuyển hướng từ máy chủ của chúng tôi, hiển thị mã trạng thái và header Location của mỗi bước, và báo khi chuỗi quay vòng về chính nó. Vì chạy mà không có cookie của trình duyệt, công cụ cho bạn biết ngay vòng lặp nằm ở trang web hay ở trình duyệt của bạn.
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 Cài đặt trang web
- Bước 3 — Nhấp Xoá dữ liệu để xóa cookie và dữ liệu cache chỉ của trang web đó
- Bước 4 — Tải lại trang
# Chrome keyboard shortcut to open Delete browsing data:
# Windows/Linux: Ctrl + Shift + Delete
# macOS: Cmd + Shift + DeleteHoặc xóa tất cả cho mọi trang web: nhấn Ctrl+Shift+Delete (Mac: Cmd+Shift+Delete) để mở Xoá dữ liệu duyệt web, chọn Cookie và các dữ liệu khác của trang web và Tệp và hình ảnh được lưu trong bộ nhớ đệm, chọn Từ trước đến nay rồi nhấp Xoá dữ liệu.
Xóa cookie trong Firefox và Safari
Firefox: Nhấn Ctrl+Shift+Delete (Mac: Cmd+Shift+Delete), chọn Cookie và dữ liệu trang và Các tập tin và trang được lưu trong bộ nhớ đệm tạm thời, đặt khoảng thời gian thành Mọi lúc, rồi nhấp Xóa.
Safari: Vào Safari > Cài đặt > Quyền riêng tư > Quản lý dữ liệu trang web, tìm tên miền bị ảnh hưởng, chọn và bấm Xóa. Sau đó xóa cache bằng Cmd+Option+E.
Nếu xóa cookie sửa được lỗi, nghĩa là một quy tắc chuyển hướng trên máy chủ vừa thay đổi và trình duyệt của bạn vẫn giữ trạng thái cũ. Khách truy cập có phiên mới có thể không bao giờ gặp lỗi này.
Gmail, Google Drive hoặc accounts.google.com đã chuyển hướng bạn quá nhiều lần
Khi thông báo nhắc đến accounts.google.com, mail.google.com hoặc drive.google.com, vòng lặp nằm giữa các trang đăng nhập của Google và cookie trong trình duyệt của bạn, không phải do một trang web bị hỏng. Chrome tiếng Việt hiển thị "Trang này hiện không hoạt động" và "accounts.google.com đã chuyển hướng bạn quá nhiều lần."; Chrome tiếng Anh hiển thị "This page isn't working" và "accounts.google.com redirected you too many times." (với Google Drive là "drive.google.com redirected you too many times."). Đăng nhập Google chỉ hoạt động khi trình duyệt giữ cookie của Google, nên bất cứ thứ gì chặn hoặc sửa các cookie đó đều khiến bạn bị xoay vòng:
- Chỉ xóa cookie của Google — mở
chrome://settings/content/all(Xem tất cả dữ liệu và quyền của trang web), tìmgoogle.com, xóa dữ liệu của nó rồi đăng nhập lại. Theo trang trợ giúp của Google, sau đó bạn sẽ phải đăng nhập lại Tài khoản Google trên trình duyệt đó - Cho phép cookie của Google — gỡ google.com khỏi mọi danh sách trang web không được phép dùng cookie, và nếu bạn chặn cookie của bên thứ ba, hãy thêm
[*.]google.comvào Các trang web được phép sử dụng cookie của bên thứ ba (Chrome: Cài đặt → Quyền riêng tư và bảo mật → Cookie của bên thứ ba) - Đăng xuất khỏi mọi tài khoản, rồi chỉ đăng nhập một tài khoản — nhiều tài khoản cùng đăng nhập, hoặc tài khoản công ty chuyển việc đăng nhập sang trang đăng nhập riêng của công ty, có thể bị đẩy qua lại giữa hai bên
- Tắt tiện ích mở rộng về cookie và quyền riêng tư — tiện ích xóa hoặc sửa cookie trong lúc đăng nhập là nguyên nhân thường gặp. Chrome tắt tiện ích trong chế độ ẩn danh trừ khi bạn cho phép, nên hãy thử cửa sổ ẩn danh trước
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.
Nếu chứng chỉ bị lỗi trong cùng cấu hình đó, bạn sẽ gặp một lỗi khác; xem ERR_SSL_PROTOCOL_ERROR và "Kết nối của bạn không phải là kết nối riêng tư".
- Kiểm tra chứng chỉ SSL — Sử dụng Kiểm tra SSL 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 vì chế độ mã hóa quyết định Cloudflare kết nối đến máy chủ của bạn qua HTTP hay HTTPS. Trang khắc phục sự cố của Cloudflare (cập nhật tháng 9/2026) liệt kê năm cài đặt gây vòng lặp, mỗi cài đặt đi kèm một việc mà máy chủ origin của bạn đang làm:
| Cài đặt Cloudflare | Gây lặp khi máy chủ của bạn… | Cách sửa |
|---|---|---|
| Chế độ SSL/TLS Flexible | chuyển hướng HTTP sang HTTPS (Cloudflare kết nối đến nó qua HTTP) | Đặt chế độ thành Full (strict), hoặc bỏ chuyển hướng sang HTTPS trên máy chủ |
| Full hoặc Full (strict) | chuyển hướng HTTPS ngược về HTTP | Bỏ chuyển hướng sang HTTP trên máy chủ |
| Always Use HTTPS | chuyển hướng HTTPS sang HTTP | Bỏ chuyển hướng sang HTTP trên máy chủ, hoặc tắt cài đặt này |
| HSTS | chuyển hướng HTTPS sang HTTP, hoặc chế độ mã hóa đang là Off | Bỏ chuyển hướng sang HTTP và giữ chế độ từ Flexible trở lên |
| Redirect Rules / Page Rules | hai quy tắc đẩy request qua lại (HTTP ↔ HTTPS, www ↔ non-www) | Xóa hoặc gộp các quy tắc xung đột |
Cách sửa thường dùng cho 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 origin có chứng chỉ hợp lệ (chứng chỉ Cloudflare Origin CA miễn phí cũng được tính), hoặc Full chỉ khi chứng chỉ là 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;
}
}Chạy nginx -t sau khi chỉnh sửa để bắt lỗi cú pháp, rồi systemctl reload nginx để áp dụng thay đổi mà không gây downtime.
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 Delete - Flush socket pools — Vào
chrome://net-internals/#socketsvà nhấp Flush socket pools để xóa các kết nối đã cache - Xóa cache DNS — Vào
chrome://net-internals/#dnsvà nhấp Clear host cache (thêm các cách khác trong bài cách flush DNS) - Test ở 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). Giá trị thấp hơn, do đặt thủ công hoặc qua chính sách doanh nghiệp, khiến chuyển hướng thất bại sớm hơn. Cũng thử xóa dữ liệu trang web: Cài đặt > Riêng tư & bảo mật > Quản lý dữ liệu > tìm tên miền > Xóa mục đã chọn.
Safari: Safari hiển thị "Safari Can't Open the Page" kèm "too many redirects occurred" (nội dung của bản tiếng Anh); console của Web Inspector ghi "Load cannot follow more than 20 redirections". Vào Safari > Cài đặt > Quyền riêng tư > Quản lý dữ liệu trang web, tìm tên miền và xóa dữ liệu của nó. Nếu vẫn lặp, hãy thử trong cửa sổ duyệt riêng tư: nếu ở đó cũng lặp, trang web đang bị cấu hình sai.
Cách sửa 8: vòng lặp chuyển hướng đăng nhập trong ứng dụng web
Trong ứng dụng web, vòng lặp thường nằm ngay trong code của bạn: một trang yêu cầu người dùng đã đăng nhập chuyển hướng đến /login, rồi có thứ gì đó đẩy /login (hoặc callback đăng nhập) quay ngược lại. Console của trình duyệt hiển thị lỗi này là net::ERR_TOO_MANY_REDIRECTS trên request bị lỗi.
- Trang đăng nhập cũng bị bảo vệ — middleware xác thực chạy trên mọi route cũng chuyển hướng
/loginvà route callback về/login. Hãy loại các route đó khỏi bước kiểm tra - Cookie phiên không bao giờ được lưu — cookie đặt
SameSite=Nonecũng phải cóSecure, nếu không trình duyệt sẽ bỏ nó; cookie đặt cho sai tên miền thì không bao giờ được gửi lại. Dù là trường hợp nào, mọi request vẫn trông như chưa đăng nhập - URL callback không khớp — nhà cung cấp (Google, GitHub, Supabase Auth) đưa người dùng đến một callback mà ứng dụng của bạn không xử lý, và route đó lại chuyển hướng về trang đăng nhập
- HTTP và HTTPS sau proxy — ứng dụng tạo URL chuyển hướng bằng
http://vì bỏ quaX-Forwarded-Proto: chính vòng lặp ở Cách Sửa 2, nhưng ở tầng cao hơn
// Next.js: proxy.ts (middleware.ts before Next.js 16).
// Never run the sign-in check on the sign-in pages themselves.
export const config = {
matcher: ["/((?!login|auth/callback|_next/static|_next/image|favicon.ico).*)"],
};Kiểm tra bản sửa bằng công cụ Kiểm tra Redirect hoặc curl -IL khi chưa đăng nhập: một chuỗi lành mạnh kết thúc ở trang đăng nhập với mã 200, không phải một chuyển hướng khác.
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 200 - Giám sát bằng công cụ — Sử dụng công cụ Kiểm tra HTTP Header 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
Một chuỗi lành mạnh có tối đa một hoặc hai bước (ví dụ HTTP → HTTPS → 200 OK). Từ ba bước trở lên thường có nghĩa là có một chuyển hướng bạn không còn cần nữa.
Tác động của vòng lặp chuyển hướng đến SEO
Vòng lặp chuyển hướng khiến trang biến mất khỏi kết quả tìm kiếm. Tài liệu về crawling của Google cho biết crawler của Google "đi theo tối đa 10 bước chuyển hướng"; vòng lặp không bao giờ đến được nội dung, nên Search Console báo lỗi chuyển hướng và URL bị loại khỏi chỉ mục cho đến khi vòng lặp được sửa.
Chuỗi dài vẫn gây hại ngay cả khi có điểm kết thúc: mỗi bước là thêm một request mà trình duyệt và Googlebot phải thực hiện trước khi trang tải được, vì vậy hãy trỏ link và chuyển hướng thẳng đến URL cuối cùng.
- 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ự
- Trang chậm hơn — mỗi bước là thêm một request và một vòng khứ hồi trước khi bất kỳ nội dung nào được tải, và bước chuyển sang host khác còn cần một kết nối mới
Kiểm tra chuỗi chuyển hướng ngay bây giờ
Dán URL vào công cụ Kiểm tra Redirect miễn phí của DNS Robot: công cụ đi theo từng bước chuyển hướng từ máy chủ của chúng tôi mà không dùng cookie của bạn, hiển thị mã trạng thái và header Location của mỗi bước, và báo khi chuỗi bị lặp.



