Hướng dẫn cách sửa lỗi ERR_TOO_MANY_REDIRECTS

ERR_TOO_MANY_REDIRECTS là lỗi vòng lặp chuyển hướng (redirect loop), trong đó trình duyệt của bạn không thể tìm ra URL cần để tải và bị chuyển hướng liên tục. Hay là quá nhiều sự chuyển hướng và đưa trang web của bạn vào một vòng lặp chuyển hướng vô hạn.

Về cơ bản trang web bị kẹt (chẳng hạn như URL 1 trỏ đến URL 2 và URL 2 trỏ lại URL 1 hoặc tên miền đã bị chuyển hướng quá nhiều lần) và không giống như một số lỗi khác, những lỗi này cần được khắc phục.

Bạn cũng có thể gặp lỗi “request exceeded the limit of 10 internal redirects due to probable configuration error“.

Có một số biến thể khác nhau của lỗi này tùy thuộc vào trình duyệt bạn đang chạy là gì?

Trình duyệt Google Chrome

Trong Google Chrome, lỗi này sẽ hiển thị dưới dạng ERR_TOO_MANY_REDIRECTS hoặc This webpage has a redirect loop problem.

Lỗi ERR_TOO_MANY_REDIRECTS là gì?
Lỗi ERR_TOO_MANY_REDIRECTS trên Chrome

Trình duyệt Mozilla Firefox

Trong Mozilla Firefox, lỗi sẽ hiển thị là The page isn’t redirecting properly. Khi kết nối với domain.com, sự cố này có thể do tắt hoặc từ chối chấp nhận cookie.

Lỗi ERR_TOO_MANY_REDIRECTS trên Mozilla Firefox
Lỗi ERR_TOO_MANY_REDIRECTS trên Mozilla Firefox

Trình duyệt Microsoft Edge

Trong Microsoft Edge, nó sẽ chỉ hiển thị là This page isn’t working right now. Domain.com đã chuyển hướng quá nhiều lần.

Lỗi ERR_TOO_MANY_REDIRECTS trên Microsoft Edge
Lỗi ERR_TOO_MANY_REDIRECTS trên Microsoft Edge

Trình duyệt Safari

Trong Safari, nó sẽ hiển thị là Safari Can’t Open the Page. Err_too_many_redirects xảy ra khi cố gắng mở “domain.com”. Lỗi này có thể xảy ra nếu bạn mở một trang được chuyển hướng để mở một trang khác, sau đó được chuyển hướng để mở trang gốc.

Lỗi ERR_TOO_MANY_REDIRECTS trên Safari
Lỗi ERR_TOO_MANY_REDIRECTS trên Safari

Nguyên nhân gây ra lỗi ERR_TOO_MANY_REDIRECTS

Một số nguyên nhân có thể gây ra lỗi ERR_TOO_MANY_REDIRECTS:

  • Cấu hình WordPress sai.
  • Thiết lập máy chủ chưa chính xác.
  • Xung đột plugin WordPress.
  • Dữ liệu Cookie trên trình duyệt bị lỗi.
  • Chứng chỉ SSLTLS cấu hình sai hoặc đã hết hạn,…
VPS NVMe Single PostChương trình ra mắt dịch vụ VPS NVME tốc độ cao

Hướng dẫn cách khắc phục lỗi ERR_TOO_MANY_REDIRECTS trên WordPress

Dưới đây là một số cách khắc phục và kiểm tra (được sắp xếp theo thứ tự theo các lý do phổ biến nhất):

  • Xóa cookie trên trang web.
  • Xóa trang web WordPress, máy chủ, proxy và bộ nhớ cache của trình duyệt.
  • Xác định bản chất của vòng lặp chuyển hướng.
  • Kiểm tra cài đặt HTTPS.
  • Kiểm tra các dịch vụ của bên thứ ba.
  • Kiểm tra cài đặt trang WordPress.
  • Tạm thời vô hiệu hóa các plugin WordPress.
  • Kiểm tra chuyển hướng trên máy chủ.

Trên thực tế, cả Google và Mozilla đều khuyến nghị ngay bên dưới lỗi là “try clearing your cookies.” Đôi khi, cookie có thể chứa dữ liệu gây ra lỗi ERR_TOO_MANY_REDIRECTS. Đây là một đề xuất bạn có thể thử ngay cả khi bạn gặp phải lỗi trên trang web mà bạn không sở hữu.

Do cookie giữ nguyên trạng thái “logged in” của bạn trên các trang web và các cài đặt khác, Vietnix khuyên bạn chỉ cần xóa các cookie trên trang web đang gặp sự cố. Bằng cách này, bạn sẽ không ảnh hưởng đến bất kỳ phiên hoặc trang web nào khác mà mình thường xuyên truy cập.

Làm theo các bước bên dưới để xóa cookie WordPress trên một trang web cụ thể trong Google Chrome.

Bước 1: Trong Google Chrome, nhấp vào ba chấm nhỏ ở góc trên bên phải. Sau đó nhấp vào “Settings”.

cách khắc phục lỗi ERR_TOO_MANY_REDIRECTS

Bước 2: Cuộn xuống và nhấp vào “Advanced“.

cách khắc phục lỗi ERR_TOO_MANY_REDIRECTS

Bước 3: Sau đó nhấp vào “Content settings”.

cách khắc phục lỗi ERR_TOO_MANY_REDIRECTS

Bước 4: Nhấp vào “Cookies“.

cách khắc phục lỗi ERR_TOO_MANY_REDIRECTS

Bước 5: Sau đó nhấp vào “See all cookies and site data“.

cách khắc phục lỗi ERR_TOO_MANY_REDIRECTS

Bước 6: Tìm kiếm trang web đang gặp lỗi ERR_TOO_MANY_REDIRECTS. Sau đó, bạn có thể xóa các cookie hiện được lưu trữ trên máy tính của mình cho tên miền đó. Sau đó, hãy thử truy cập lại trang web.

cách khắc phục lỗi ERR_TOO_MANY_REDIRECTS

2. Xóa máy chủ, proxy và bộ nhớ cache của trình duyệt

Do các vòng lặp chuyển hướng là các phản hồi có thể được lưu vào bộ nhớ cache, bạn nên thử xóa bộ nhớ cache trên trang web WordPress, máy chủ, dịch vụ proxy của bên thứ ba và thậm chí cả trình duyệt của mình nếu cần.

Xóa bộ nhớ cache của trang web WordPress

Tùy thuộc vào loại vòng lặp chuyển hướng, bạn vẫn có thể có quyền truy cập vào Dashboard quản trị WordPress. Trong trường hợp này, bạn có thể dễ dàng xóa bộ nhớ cache trong cài đặt của plugin bộ nhớ đệm. Dưới đây là một số cách xóa bộ nhớ cache WordPress bằng các plugin phổ biến:

  • Xóa bộ nhớ cache với Cache Enabler.
  • Xóa bộ nhớ cache với W3 Total Cache.
  • Xóa bộ nhớ cache với Super Cache.
  • Xóa bộ nhớ cache với WP-Rocket (Miễn phí khi đăng ký dịch vụ Hosting hoặc VPS tại Vietnix).

Xóa bộ nhớ cache của máy chủ

Nếu bạn không thể truy cập WordPress admin, nhiều máy chủ lưu trữ WordPress có các công cụ bảng điều khiển riêng để xóa bộ nhớ cache trên trang web WordPress.

Thường các nhà cung cấp dịch vụ lưu trữ tại Việt Nam thường sử dụng công cụ quản trị Hosting cPanel, bạn có thể vô đây để xóa cache với LiteSpeed Web Cache Manager.

Xóa bộ nhớ cache của máy chủ

Xóa bộ nhớ cache proxy

Nếu bạn đang sử dụng dịch vụ proxy của bên thứ ba như Cloudflare hoặc Sucuri, thì việc xóa bộ nhớ cache ở phía họ cũng có thể có lợi.

  • Cloudflare

Để xóa bộ nhớ cache của Cloudflare, hãy đăng nhập vào trang Cloudflare > Caching > Nhấp vào Purge Everything.

Xóa bộ nhớ cache proxy
  • Sucuri

Để xóa bộ nhớ cache của Sucuri, hãy đăng nhập vào Dashboard > Performance > Nhấp vào Clear Cache.

Clear Cache

Xóa bộ nhớ cache của trình duyệt

Nếu muốn kiểm tra và xem liệu đó có phải là bộ nhớ cache của trình duyệt hay không, mà không cần xóa bộ nhớ cache, bạn có thể mở trình duyệt của mình ở chế độ ẩn danh. Hoặc kiểm tra trình duyệt khác và xem có còn gặp lỗi ERR_TOO_MANY_REDIRECTS không.

3. Xác định bản chất của vòng lặp chuyển hướng

Nếu việc xóa bộ nhớ cache không hiệu quả, thì bạn cần xem liệu bạn có thể xác định bản chất của vòng lặp chuyển hướng hay không. Công cụ Redirect Checker trực tuyến miễn phí có thể giúp cung cấp một số phân tích sâu hơn về những gì đang xảy ra. Việc này cũng có thể được thực hiện thông qua cURL.

Ví dụ: Trên trang web bên dưới, nó có một vòng lặp chuyển hướng 301 lặp lại, điều này đang gây ra một chuỗi lớn các chuyển hướng bị lỗi. Bạn có thể theo dõi tất cả các chuyển hướng và xác định xem nó có lặp lại hay không, hoặc có thể là một vòng lặp HTTP đến HTTPS, cách giải quyết vấn đề được xem xét bên dưới.

3. Xác định bản chất của vòng lặp chuyển hướng

Tiện ích mở rộng Redirect Path của Chrome cũng rất hữu ích và cung cấp thông tin chi tiết về tất cả các chuyển hướng xảy ra trên trang web (URL hoặc trang cụ thể).

Hướng dẫn cách sửa lỗi ERR_TOO_MANY_REDIRECTS

4. Kiểm tra cài đặt HTTPS

Một điều khác cần kiểm tra là cài đặt HTTPS. Đã rất nhiều lần lỗi ERR_TOO_MANY_REDIRECTS xảy ra khi người dùng vừa chuyển trang web WordPress của họ sang HTTPS và không hoàn thành hoặc thiết lập chính xác.

1. Không dùng HTTPS nếu không có chứng chỉ SSL

Đây là lý do phổ biến nhất mà chúng ta thường thấy. Nếu bạn buộc trang web WordPress của mình dùng HTTPS mà không cài đặt chứng chỉ SSL trước, sẽ ngay lập tức đưa trang web của mình vào vòng lặp chuyển hướng. Để khắc phục chỉ cần cài đặt chứng chỉ SSL trên trang web WordPress.

Bạn cũng nên chạy kiểm tra SSL. Chứng chỉ SSL/TLS không chỉ yêu cầu chứng chỉ chính mà còn cả chứng chỉ trung gian (chuỗi) cũng phải được cài đặt. Các chứng chỉ cần được thiết lập đúng cách.

Bạn nên sử dụng công cụ kiểm tra SSL miễn phí từ Qualys SSL Labs. Chỉ cần truy cập công cụ kiểm tra SSL, nhập tên miền của bạn vào trường Hostname và nhấp vào “Submit”. Bạn cũng có thể chọn tùy chọn để ẩn kết quả công khai nếu muốn. Có thể mất một hoặc hai phút để quét cấu hình SSL/TLS của trang web trên máy chủ web.

1. Không dùng HTTPS nếu không có chứng chỉ SSL

2. Không sử dụng plugin SSL, hãy cập nhật các liên kết được mã hóa

Có một số plugin SSL WordPress miễn phí, chẳng hạn như plugin Really Simple SSL sẽ giúp tự động chuyển hướng sang HTTPS. Tuy nhiên, không nên sử dụng phương pháp này như một giải pháp lâu dài vì các plugin của bên thứ ba luôn có thể gây ra các vấn đề khác và khả năng tương thích. Đó là một giải pháp tạm thời, nhưng nên cập nhật các liên kết HTTP được mã hóa của mình.

3. Kiểm tra chuyển hướng HTTP đến HTTPS trên máy chủ

Rất có thể có lẽ các quy tắc chuyển hướng HTTPS trên máy chủ đã bị định cấu hình sai.

Chuyển hướng HTTP sang HTTPS trong Nginx

Nếu máy chủ web đang chạy Nginx, bạn có thể dễ dàng chuyển hướng tất cả lưu lượng HTTP sang HTTPS bằng cách thêm mã sau vào tệp cấu hình Nginx. Đây là phương pháp được khuyến nghị để chuyển hướng WordPress chạy trên Nginx.

server { listen 80; server_name domain.com www.domain.com; return 301 https://domain.com$request_uri; }

Chuyển hướng HTTP sang HTTPS trong Apache

Nếu máy chủ web đang chạy Apache, bạn có thể dễ dàng chuyển hướng tất cả lưu lượng HTTP của mình sang HTTPS bằng cách thêm mã sau vào tệp .htaccess của bạn. Đây là phương pháp được khuyến nghị để chuyển hướng WordPress đang chạy trên Apache.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

4. Kiểm tra quá nhiều chuyển hướng HTTPS

Vấn đề cũng có thể đơn giản là có quá nhiều chuyển hướng HTTPS. Bạn có thể dễ dàng kiểm tra trang web của mình để xem nó đang sử dụng bao nhiêu chuyển hướng bằng công cụ lập bản đồ Redirect của Patrick Sexton. Dưới đây là một ví dụ về các chuyển hướng không được thiết lập đúng cách có thể dễ dàng phát hiện bằng cách sử dụng trình ánh xạ chuyển hướng. Bạn có thể thấy rằng có các chuyển hướng HTTPS trùng lặp xảy ra trên cả phiên bản có www và không có www.

4. Kiểm tra quá nhiều chuyển hướng HTTPS

>> Xem thêm: Cách chuyển HTTP sang HTTPS WordPress nhanh chóng

5. Kiểm tra dịch vụ của bên thứ ba

ERR_TOO_MANY_REDIRECTS cũng thường do các dịch vụ proxy ngược như Cloudflare gây ra. Điều này thường xảy ra khi tùy chọn SSL linh hoạt được bật và bạn đã cài đặt chứng chỉ SSL với máy chủ WordPress của mình. Khi ở chế độ linh hoạt, tất cả các yêu cầu đến máy chủ lưu trữ sẽ được gửi qua HTTP.

Máy chủ lưu trữ của bạn rất có thể đã có sẵn một chuyển hướng từ HTTP sang HTTPS và do đó xảy ra vòng lặp chuyển hướng. Để khắc phục điều này, bạn cần thay đổi cài đặt Cloudflare Crypto từ Flexible thành cả Full or Full (strict).

5. Kiểm tra dịch vụ của bên thứ ba

Bạn có thể sử dụng quy tắc trang Always Use HTTPS để chuyển hướng tất cả người dùng đến HTTPS mà không cần tạo vòng lặp. Một điều khác cần chú ý với Cloudflare là các quy tắc chuyển hướng URL chuyển tiếp. Hãy cẩn thận để không tạo chuyển hướng trong đó tên miền tự trỏ đến chính nó. Điều này có thể gây ra lỗi chuyển hướng vô hạn và các URL bị ảnh hưởng sẽ không thể giải quyết.

Nếu bạn đang sử dụng StackPath, có một tùy chọn gọi là “Origin Pull Protocol” chỉ cần được đặt thành HTTPS.

Chỉ sử dụng Cloudflare DNS

Nếu bạn chỉ muốn sử dụng DNS của Cloudflare chứ không phải dịch vụ proxy/WAF thì nên đảm bảo bản ghi DNS của mình được đặt thành “DNS Only.”Các đám mây sẽ xuất hiện dưới dạng “xám” thay vì “cam”. Bạn định cấu hình điều này trong tab “DNS” trong bảng điều khiển Cloudflare.

Chỉ sử dụng Cloudflare DNS

6. Kiểm tra cài đặt trang web WordPress

Một điều khác cần kiểm tra là cài đặt trang WordPress. Có hai trường khác nhau cần đảm bảo được đặt chính xác và không trỏ vào một miền sai hoặc không khớp. Một lỗi phổ biến khác là bạn không sử dụng tiền tố chính xác để khớp với phần còn lại của trang web, www hoặc không phải www. Đôi khi mọi người di chuyển máy chủ hoặc thay đổi miền và những miền này có thể bị thay đổi mà bạn không nhận ra.

Địa chỉ WordPress (URL): Địa chỉ để truy cập blog.

Địa chỉ trang web (URL): Địa chỉ của các tệp cốt lõi WordPress.

Cả hai phải khớp nhau trừ khi bạn cung cấp cho WordPress thư mục riêng của nó.

6. Kiểm tra cài đặt trang web WordPress

Rất có thể mặc dù bạn không thể truy cập trang tổng quan WordPress của mình. Vì vậy, bạn có ghi đè các cài đặt ở trên bằng cách nhập các giá trị vào tệp wp-config.php.

Tệp wp-config.php thường nằm ở thư mục gốc của trang web WordPress và có thể truy cập qua FTP, SSH hoặc WP-CLI. Để tạo hard-code WP_HOME và WP_SITEURL, chỉ cần nhập code sau vào đầu tệp, thay đổi các giá trị để phản ánh miền của bạn.

define(‘WP_HOME’,’https://yourdomain.com’);

define(‘WP_SITEURL’,’https://yourdomain.com’);

Dưới đây là ví dụ về tệp wp-config.php trông như thế nào.

Hướng dẫn cách sửa lỗi ERR_TOO_MANY_REDIRECTS

Hoặc nếu bạn thích, đây là hai cách bổ sung để bạn có thể thay đổi URL WordPress mà không cần truy cập vào bảng điều khiển quản trị:

  • Thay đổi URL WordPress trực tiếp trong cơ sở dữ liệu
  • Thay đổi URL WordPress với WP-CLI

Sau khi đặt theo cách thủ công, bạn có thể duyệt đến trang web của mình để xác minh xem nó có khắc phục được lỗi ERR_TOO_MANY_REDIRECTS hay không.

Multisite

Nếu bạn đang thay đổi tên miền trên nhiều trang, hãy nhớ kiểm tra bảng wp_blogs. Việc thực hiện tìm kiếm và thay thế sai có thể gây ra vòng lặp chuyển hướng vô hạn. Điều này là do trang web của mạng không khớp với các trang con.

wp_#_options: Mỗi trang con sẽ có các bảng tương ứng với blog_id trong bảng wp_blogs. Đi tới bảng wp_#_options trong đó # tương ứng với blog_id và cập nhật cài đặt “SITEURL” và “HOME” trong bảng đó.

7. Tạm thời vô hiệu hóa các plugin WordPress

Khi nói đến WordPress, tạm thời tắt tất cả các plugin WordPress có thể là một cách nhanh chóng để phát hiện các vấn đề. Ví dụ: các plugin như Redirection hoặc Yoast SEO premium cho phép bạn triển khai các chuyển hướng. Đôi khi các cài đặt hoặc cập nhật cho các plugin này có thể xung đột với các chuyển hướng có thể đã được đặt trên máy chủ, gây ra vòng lặp chuyển hướng.

Bạn sẽ không mất bất kỳ dữ liệu nào nếu chỉ cần tắt một plugin. Nhiều khả năng bạn không thể truy cập WordPress admin, vì vậy bạn sẽ cần đăng nhập qua SFTP vào máy chủ của mình và đổi tên thư mục plugin thành plugins_old. Sau đó kiểm tra lại trang web của mình.

7. Tạm thời vô hiệu hóa các plugin WordPress

Nếu nó hoạt động, thì bạn sẽ cần phải kiểm tra từng plugin một. Đổi tên thư mục plugin của bạn thành “plugin” và sau đó đổi tên từng thư mục plugin bên trong từng cái một, cho đến khi bạn tìm thấy vấn đề. Trước tiên, bạn cũng có thể thử điều này trên một trang web mẫu.

Hướng dẫn cách sửa lỗi ERR_TOO_MANY_REDIRECTS

8. Kiểm tra chuyển hướng trên máy chủ

Bên cạnh chuyển hướng HTTP sang HTTPS trên máy chủ, bạn có thể kiểm tra và đảm bảo rằng không có bất kỳ chuyển hướng bổ sung nào bị thiết lập sai. Ví dụ: một chuyển hướng 301 redirect back có thể gỡ trang web của bạn. Thông thường, chúng được tìm thấy trong các tệp cấu hình máy chủ.

Tệp Apache .htaccess

Nếu bạn đang sử dụng máy chủ WordPress đang chạy Apache, rất có thể tệp .htaccess của bạn có quy tắc sai trong đó. Làm theo các bước dưới đây để tạo lại một cái mới từ đầu.

Đầu tiên, đăng nhập vào trang web của bạn qua FTP hoặc SSH và đổi tên tệp .htaccess của bạn thành .htaccess_old. Điều này giúp bạn có một bản sao lưu.

8. Kiểm tra chuyển hướng trên máy chủ 

Thông thường để tạo lại tệp này, bạn có thể chỉ cần lưu lại các liên kết cố định của mình trong WordPress. Tuy nhiên, nếu bạn đang gặp lỗi ERR_TOO_MANY_REDIRECTS, rất có thể bạn không thể truy cập quản trị viên WordPress của mình. Do đó, bạn có thể tạo một tệp .htaccess mới và nhập các nội dung sau. Sau đó tải nó lên máy chủ của mình. Phần sau sử dụng cài đặt mặc định.

# 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

Cấu hình Nginx

Nếu máy chủ của bạn sử dụng Nginx, tệp này có thể phức tạp hơn một chút vì tệp cấu hình có thể thay đổi tùy thuộc vào nhà cung cấp dịch vụ lưu trữ. Bạn nên liên hệ với nhà cung cấp máy chủ và yêu cầu họ kiểm tra tệp cấu hình để tìm lỗi gây ra vòng lặp chuyển hướng hoặc quá nhiều chuyển hướng.

Dưới đây là một ví dụ đơn giản về chuyển hướng từ https://domain.com/ trở lại chính nó, điều này sẽ gây ra một vòng lặp chuyển hướng.

Cấu hình Nginx

Điều này cũng thường xảy ra khi URL vị trí bao gồm trong cả “Redirect From” và “Redirection To.”

Ví dụ: điều sau sẽ gây ra một vòng lặp chuyển hướng:

Redirect From: ^/blog/about Redirect To: https://domain.com/blog/about-me

Bởi vì khi quá trình đạt đến ^/blog/about, phần còn lại -me sẽ không thành vấn đề và nó sẽ gây ra một vòng lặp vô hạn. Bạn phải chỉ định điểm cuối của chuỗi và điểm bắt đầu. Đây là những hành động để khắc phục vấn đề:

Redirect From: ^/blog/about$ Redirect To: https://domain.com/blog/about-me

Ký tự $ sẽ yêu cầu Nginx dừng lại và chỉ đối sánh yêu cầu nếu chuỗi ở đó chính xác, nhưng không có gì sau đó.

Các proxy ngược được định cấu hình sai

Một lý do phổ biến khác gây ra lỗi ERR_TOO_MANY_REDIRECTS là nếu bạn đang sử dụng proxy ngược. Proxy ngược có thể khá phức tạp và rất dễ đưa trang web WordPress vào vòng lặp chuyển hướng nếu bị định cấu hình sai.

Kết luận

Các vòng lặp chuyển hướng đôi khi có thể khó theo dõi. Nhưng hy vọng rằng một số bước khắc phục sự cố ở trên sẽ giúp bạn giải quyết lỗi ERR_TOO_MANY_REDIRECTS.

Nguồn: https://vietnix.vn/loi-err-too-many-redirects/