Bạn có từng gặp tình huống đang upload file lên website thì bất ngờ nhận thông báo lỗi 413 request entity too large? Đừng lo! Đây là một lỗi khá phổ biến trong quá trình quản trị website, đặc biệt khi bạn sử dụng hosting có giới hạn dung lượng upload. Trong bài viết này, chúng ta sẽ cùng tìm hiểu lỗi 413 request entity too large là gì, nguyên nhân do đâu và cách khắc phục hiệu quả nhất để website của bạn luôn chạy mượt mà, không bị gián đoạn bởi những rào cản kỹ thuật khó chịu.
Lỗi 413 request entity too large là gì?
Lỗi 413 request entity too large (còn được gọi là 413 payload too large) là một trong những mã trạng thái HTTP, xuất hiện khi bạn cố gắng tải lên một file có kích thước vượt quá giới hạn cho phép của máy chủ.
Nói một cách đơn giản, khi bạn tải lên một file (như hình ảnh, video, plugin, theme,…), máy chủ của bạn sẽ kiểm tra xem kích thước file đó có vượt quá giới hạn mà nó đã được cấu hình hay không. Nếu file quá lớn, máy chủ sẽ từ chối yêu cầu và trả về lỗi 413, thay vì xử lý file đó.
Lỗi 413 thường xảy ra trong các trường hợp sau:
- Bạn cố gắng tải lên một video, hình ảnh có độ phân giải cao hoặc file âm thanh lớn lên website.
- Cài đặt plugin hoặc theme có dung lượng lớn, vượt quá giới hạn cho phép của server.
- Gọi API với JSON/body quá lớn (POST/PUT).
- Khi bạn nhập dữ liệu từ một trang web khác hoặc tải lên file backup có kích thước lớn.
Nguyên nhân gây ra lỗi 413 request entity too large
Chắc hẳn bạn đã từng gặp lỗi 413 request entity too large khi đang hào hứng tải một video hay một bức ảnh chất lượng cao lên website của mình. Thông báo này giống như một cánh cổng bị đóng lại, ngăn cản yêu cầu của bạn vì nó quá lớn. Vậy nguyên nhân cụ thể đằng sau lỗi này là gì?
1. Giới hạn dung lượng upload trong PHP
Đây là nguyên nhân phổ biến và quan trọng nhất. Hầu hết các website, đặc biệt là WordPress, đều chạy trên ngôn ngữ lập trình PHP. Để bảo vệ máy chủ khỏi các cuộc tấn công hoặc bị quá tải, PHP sẽ đặt ra hai giới hạn chính:
- Upload_max_filesize: Đây là giới hạn kích thước tối đa của một file mà bạn có thể tải lên. Ví dụ: nếu giá trị này là 10MB, bạn không thể tải lên một file 15MB.
- Post_max_size: Đây là giới hạn tổng kích thước dữ liệu được gửi trong một yêu cầu HTTP, bao gồm cả file bạn tải lên và các thông tin khác. Giá trị này thường lớn hơn hoặc bằng upload_max_filesize để đảm bảo yêu cầu được xử lý.
- Memory_limit (liên quan): Giới hạn bộ nhớ PHP có thể dùng khi xử lý request.
Nếu kích thước file của bạn hoặc tổng payload vượt quá ngưỡng này, máy chủ sẽ không thể xử lý yêu cầu và trả về lỗi 413 request entity too large.
Dấu hiệu nhận biết:
- Lỗi xuất hiện khi upload file lớn; file nhỏ thì thành công.
- WordPress/ứng dụng báo “file vượt quá giới hạn cho phép”, đôi khi không hiện rõ mã 413 trên giao diện nhưng Network tab (DevTools) cho thấy Status 413.
Cách kiểm tra nhanh:
- Tạo file phpinfo() để xem giá trị thực tế đang áp dụng (cẩn trọng bảo mật, xóa sau khi kiểm).
- So sánh dung lượng file với upload_max_filesize và post_max_size.
- Nhớ rằng post_max_size thường phải ≥ upload_max_filesize.
2. Giới hạn dung lượng trong file .htaccess
File .htaccess là một file cấu hình mạnh mẽ, cho phép bạn ghi đè các thiết lập mặc định của máy chủ. Nhiều quản trị viên web đã sử dụng file này để tăng giới hạn tải lên của PHP mà không cần can thiệp trực tiếp vào file php.ini.
Tuy nhiên, nếu bạn cài đặt một plugin hoặc theme mới mà nó vô tình ghi đè hoặc chỉnh sửa file .htaccess về một giá trị thấp hơn, lỗi 413 có thể xuất hiện trở lại. Điều này cũng xảy ra nếu bạn tự cấu hình nhưng giá trị quá thấp so với file bạn đang muốn tải lên.
Dấu hiệu nhận biết:
- Chỉnh php.ini không ăn, nhưng sửa .htaccess thì có tác dụng (hoặc ngược lại).
- Trên Nginx, .htaccess không có tác dụng → nếu bạn chỉ sửa .htaccess mà site chạy Nginx, lỗi vẫn y nguyên.
Kiểm tra nhanh:
- Xác định web server đang dùng Apache hay Nginx.
- Với Apache + PHP module, thử thêm vào .htaccess:
php_value upload_max_filesize 64M
php_value post_max_size 128M
- Nếu chạy PHP-FPM hoặc Nginx proxy → chuyển sang chỉnh ở PHP-FPM pool/php.ini/nginx.conf.
3. Cấu hình Nginx hoặc Apache giới hạn dung lượng request
Ngay cả khi PHP cho phép, web server cũng có ngưỡng riêng:
- Với Nginx, thông số client_max_body_size sẽ quy định kích thước tối đa của một yêu cầu. Nếu bạn cố gắng tải lên một file vượt quá giới hạn này, Nginx sẽ từ chối ngay lập tức và trả về lỗi 413.
- Với Apache, thông số LimitRequestBody có chức năng tương tự.
Đây là lý do đôi khi bạn đã tăng giới hạn trong PHP nhưng lỗi vẫn không biến mất, vì máy chủ web đã chặn yêu cầu ngay từ đầu.
Dấu hiệu nhận biết:
- Log lỗi của Nginx/Apache ghi rõ body quá lớn.
- Bạn đã tăng upload_max_filesize/post_max_size mà vẫn dính 413.
Kiểm tra nhanh:
- Xem error.log của Nginx/Apache.
- Tăng ngưỡng và reload.
4. Máy chủ hosting không cho phép upload file quá lớn
Một số nhà cung cấp hosting sẽ đặt ra giới hạn cứng (hard limit) về kích thước file tải lên để đảm bảo tài nguyên được phân bổ công bằng cho tất cả người dùng. Ngay cả khi bạn đã cố gắng chỉnh sửa tất cả các file cấu hình, bạn vẫn không thể vượt qua giới hạn này. Trong trường hợp này, bạn chỉ có thể liên hệ với bộ phận hỗ trợ của nhà cung cấp để được trợ giúp hoặc cân nhắc nâng cấp gói hosting.
Dấu hiệu nhận biết:
- Đã tăng mọi giá trị có thể nhưng 413 vẫn xuất hiện, đặc biệt ở một mức dung lượng cố định.
- Nhà cung cấp có tài liệu/FAQ nói về giới hạn upload/gửi request.
Kiểm tra nhanh:
- Thử nhiều tệp với mốc dung lượng khác nhau để xác định điểm gãy.
- Kiểm tra trang quản trị hosting (cPanel/Plesk) có mục đặt PHP Selector/Resource Limits.
- Liên hệ hỗ trợ kỹ thuật để xác nhận/nhờ tăng ngưỡng hoặc nâng gói.
5. Cấu hình theme/plugin chặn file dung lượng cao
Một số theme hoặc plugin có thể có cài đặt riêng về việc giới hạn kích thước file tải lên. Điều này thường xảy ra với các plugin bảo mật hoặc tối ưu hóa website. Chúng có thể được thiết kế để ngăn chặn việc upload file quá lớn nhằm cải thiện hiệu suất hoặc bảo vệ website khỏi các rủi ro bảo mật.
Dấu hiệu nhận biết:
- Upload qua Media Library lỗi, nhưng upload bằng FTP vẫn OK.
- Endpoint/API này báo 413, endpoint khác thì không.
- Thay theme hoặc tạm tắt plugin thì hết.
Kiểm tra nhanh:
- Tắt lần lượt plugin/bật theme mặc định để khoanh vùng thủ phạm.
- Tìm trong mã nguồn các chỗ đặt limit (WP filter, middleware, cấu hình form).
- Với Node.js/Express, kiểm tra tham số limit của body-parser/multer; Django: DATA_UPLOAD_MAX_MEMORY_SIZE; Laravel: giới hạn trong cấu hình request/validation.
Cách khắc phục lỗi 413 request entity too large
Nếu bạn đã biết nguyên nhân, thì việc fix lỗi 413 request entity too large chỉ còn là câu chuyện nới giới hạn ở đúng chỗ. Dưới đây là những giải pháp phổ biến nhất giúp bạn xử lý nhanh gọn lỗi này.
Giải pháp 1: Chỉnh sửa file .htaccess
Đây là cách phổ biến và đơn giản nhất để tăng giới hạn upload trên website. File .htaccess cho phép bạn ghi đè các thiết lập của server mà không cần truy cập vào file gốc.
Cách làm:
Bước 1: Truy cập vào hosting của bạn qua cPanel hoặc FTP/SFTP.
Bước 2: Tìm đến thư mục gốc của website (thường là public_html hoặc www).
Bước 3: Mở file .htaccess và thêm đoạn code sau vào cuối file:
php_value upload_max_filesize 256M
php_value post_max_size 256M
php_value memory_limit 256M
php_value max_execution_time 300
php_value max_input_time 300
Lưu ý:
- Các giá trị 256M và 300 có thể được điều chỉnh tùy theo nhu cầu của bạn. Ví dụ: bạn có thể tăng lên 512M nếu cần tải file lớn hơn.
- Nếu cách này không hiệu quả, có thể server của bạn không cho phép ghi đè các giá trị PHP qua file .htaccess.
Giải pháp 2: Chỉnh sửa file wp-config.php
Nếu cách sửa lỗi trên không thành công, bạn có thể thử thêm code vào file wp-config.php, một file cấu hình quan trọng của WordPress.
Cách làm:
Bước 1: Truy cập vào hosting qua cPanel hoặc FTP/SFTP.
Bước 2: Tìm và mở file wp-config.php trong thư mục gốc.
Bước 3: Thêm đoạn code sau vào ngay phía trên dòng /* That's all, stop editing! Happy publishing. */:
@ini_set( 'upload_max_filesize', '256M' );
@ini_set( 'post_max_size', '256M' );
@ini_set( 'memory_limit', '256M' );
Lưu ý rằng đây là một giải pháp thay thế, hoạt động tốt trên nhiều server khác nhau. Đôi khi, phương pháp này chỉ tăng giới hạn bộ nhớ (memory_limit) chứ không phải giới hạn tải lên, vì vậy bạn nên thử cách tiếp theo nếu lỗi vẫn còn.
Giải pháp 3: Chỉnh sửa file php.ini
Chỉnh sửa file php.ini là giải pháp mạnh mẽ nhất giúp khắc phục lỗi 413 từ gốc. Tuy nhiên, nó yêu cầu bạn có quyền truy cập vào file php.ini, thường chỉ có trên các gói hosting VPS hoặc Dedicated Server.
Cách làm:
Bước 1: Tìm file php.ini trên server của bạn. Vị trí file có thể khác nhau tùy thuộc vào nhà cung cấp hosting.
Bước 2: Mở file và tìm các dòng sau, sau đó sửa đổi giá trị cho phù hợp:
upload_max_filesize = 256M
post_max_size = 256M
memory_limit = 256M
max_execution_time = 300
max_input_time = 300
Sau khi sửa đổi, bạn cần khởi động lại máy chủ web để các thay đổi có hiệu lực. Nếu website sử dụng shared hosting thì bạn có thể không có quyền truy cập file này. Thay vào đó, bạn có thể thử tạo một file php.ini mới trong thư mục gốc và thêm các dòng trên.
Giải pháp 4: Cấu hình lại server (Nginx/Apache)
Đối với các quản trị viên server, việc chỉnh sửa cấu hình máy chủ là cách hiệu quả nhất.
- Với Nginx: Mở file nginx.conf và thêm dòng client_max_body_size 256M; vào khối http, server, hoặc location.
- Với Apache: Sửa file httpd.conf hoặc apache2.conf, sau đó thêm dòng LimitRequestBody 268435456 (giá trị tính bằng byte) vào khối hoặc .
Giải pháp 5: Liên hệ với nhà cung cấp hosting
Nếu bạn không am hiểu về kỹ thuật hoặc đã thử tất cả các cách trên mà vẫn không thành công, cách tốt nhất là liên hệ với đội ngũ hỗ trợ của nhà cung cấp hosting. Họ có thể nhanh chóng giúp bạn tăng giới hạn upload mà không làm ảnh hưởng đến các cài đặt khác. Đây là cách an toàn và đơn giản nhất cho người dùng phổ thông.
Giải pháp 6. Giải pháp tạm thời
Nếu bạn đang cần gấp mà chưa chỉnh server được, có vài cách “chữa cháy” tạm thời để bạn có thể tải file lên server:
- Nén file (zip/rar) trước khi upload.
- Chia nhỏ file (ví dụ upload media thành nhiều phần).
- Sử dụng một phần mềm FTP client (như FileZilla) để kết nối với server của bạn. Tải file trực tiếp vào thư mục mong muốn (ví dụ: wp-content/uploads/). Sau khi tải xong, file sẽ xuất hiện trong Thư viện Media của WordPress hoặc bạn có thể gọi file đó bằng đường dẫn trực tiếp.
- Với video dung lượng lớn → cân nhắc upload lên YouTube/Vimeo, rồi nhúng link thay vì upload trực tiếp.
Phân biệt lỗi 413 với một số lỗi khác trên website
Trong quá trình quản trị và sử dụng website, có rất nhiều mã lỗi HTTP có thể xuất hiện. Mỗi mã lỗi đều có ý nghĩa riêng, giúp chúng ta nhanh chóng nhận biết vấn đề để xử lý. Trong đó, lỗi 413 Request Entity Too Large thường gây nhầm lẫn với một số lỗi khác.
Lỗi | Tên đầy đủ | Nguyên nhân | Ý nghĩa |
413 | Request Entity Too Large | Yêu cầu (file) quá lớn. Máy chủ từ chối yêu cầu của bạn vì file tải lên vượt quá giới hạn kích thước cho phép. | Cố gắng tải lên video, hình ảnh, hoặc file có dung lượng quá lớn; giới hạn tải lên của máy chủ (client_max_body_size, upload_max_filesize). |
414 | URI Too Long | URI quá dài. Máy chủ từ chối yêu cầu vì URL (địa chỉ trang web) quá dài. | URL chứa quá nhiều tham số truy vấn (query parameters) hoặc dữ liệu được mã hóa trong URL có kích thước lớn. |
415 | Unsupported Media Type | Định dạng dữ liệu không hỗ trợ. Máy chủ từ chối yêu cầu vì định dạng của dữ liệu gửi lên (ví dụ: hình ảnh, video) không được máy chủ hỗ trợ. | Bạn đang tải lên một file có định dạng không được chấp nhận, chẳng hạn như file .webp vào một hệ thống chỉ cho phép .jpg. |
431 | Request Header Fields Too Large | Các trường tiêu đề yêu cầu quá lớn. Máy chủ từ chối yêu cầu vì các tiêu đề (headers) HTTP của yêu cầu quá lớn. | Tiêu đề HTTP chứa quá nhiều cookie hoặc các thông tin xác thực, gây ra lỗi khi máy chủ cố gắng xử lý. |
400 | Bad Request | Yêu cầu không hợp lệ. Máy chủ không thể hiểu yêu cầu do cú pháp bị sai hoặc yêu cầu chứa thông tin không chính xác. | Dữ liệu gửi lên bị hỏng, cú pháp URL không đúng, hoặc yêu cầu chứa các header không hợp lệ. |
403 | Forbidden | Bị cấm truy cập. Máy chủ hiểu yêu cầu của bạn nhưng từ chối thực hiện vì bạn không có quyền truy cập vào tài nguyên đó. | Quyền truy cập file bị sai (ví dụ: file không được phép đọc), bạn chưa đăng nhập hoặc tài khoản của bạn không có quyền xem trang. |
404 | Not Found | Không tìm thấy trang. Máy chủ không thể tìm thấy tài nguyên (trang web, hình ảnh, file) mà bạn yêu cầu. | URL bị gõ sai, trang đã bị xóa hoặc chuyển địa chỉ, cấu hình website bị lỗi. |
Cách phòng tránh lỗi 413 trong tương lai
Sau khi xử lý xong Error 413, việc quan trọng tiếp theo là phòng tránh lỗi này tái diễn. Thay vì để đến lúc upload file rồi “bị chặn”, bạn có thể chủ động cấu hình và tối ưu ngay từ đầu.
- Cấu hình dung lượng upload hợp lý ngay từ khi cài đặt: Đặt giới hạn upload_max_filesize và post_max_size trong PHP đủ lớn so với nhu cầu thực tế (ví dụ 64MB – 128MB). Với website có khả năng upload file media thường xuyên (như tin tức, thương mại điện tử, LMS), hãy cân nhắc giới hạn cao hơn.
- Sử dụng FTP/SFTP cho file dung lượng lớn: Thay vì upload trực tiếp qua WordPress, hãy dùng FTP hoặc SFTP để đưa file lên server. Sau đó đưa file vào thư mục wp-content/uploads/. Dùng plugin như Add From Server để import file vào thư viện media. Cách này giúp bạn bypass hoàn toàn giới hạn upload của PHP.
- Tối ưu hóa file trước khi upload: Đây là giải pháp đơn giản và hiệu quả nhất mà bất kỳ ai cũng có thể thực hiện. Với hình ảnh, bạn sử dụng các công cụ nén ảnh online hoặc plugin (như Smush, TinyPNG) để giảm dung lượng ảnh mà vẫn giữ được chất lượng. Với video, chuyển định dạng sang MP4 (H.264/H.265) và nén lại bằng HandBrake. Ngoài ra, bạn chỉ nên tải lên các theme và plugin cần thiết để tránh lỗi 413.
- Sử dụng dịch vụ lưu trữ ngoài cho file nặng: Với video, bạn nên upload lên YouTube, Vimeo, Google Drive rồi nhúng link. Với file tải về (download), bạn hãy lưu trên dịch vụ cloud (Dropbox, Amazon S3, Google Cloud Storage) thay vì nhồi hết vào hosting. Cách này không chỉ tránh lỗi 413, mà còn giúp website nhẹ hơn, nhanh hơn.
- Lựa chọn nhà cung cấp hosting uy tín: Các gói hosting giá rẻ thường có giới hạn tài nguyên rất thấp, bao gồm cả giới hạn upload. Để tránh lỗi 413 và nhiều lỗi khác, hãy đầu tư vào một nhà cung cấp hosting uy tín, có dịch vụ hỗ trợ tốt và các gói hosting có thông số kỹ thuật rõ ràng, đáp ứng được nhu cầu của bạn.
Tại Phương Nam Vina, chúng tôi cung cấp dịch vụ hosting chất lượng cao với hạ tầng máy chủ hiện đại, hỗ trợ công nghệ tiên tiến và đội ngũ kỹ thuật luôn đồng hành 24/7. Hosting được tối ưu đặc biệt cho WordPress, website bán hàng, tin tức, giới thiệu doanh nghiệp,… giúp website của bạn tải nhanh, hoạt động ổn định và an toàn tuyệt đối.
Với nhiều gói hosting linh hoạt, chi phí hợp lý, cùng cam kết băng thông không giới hạn, backup định kỳ và bảo mật chống tấn công DDoS, Phương Nam Vina là lựa chọn đáng tin cậy để bạn yên tâm phát triển kinh doanh online. Vậy nên, hãy liên hệ ngay với Phương Nam Vina qua hotline 0912817117 - 0915101017 để được tư vấn gói hosting phù hợp nhất cho website của bạn nhé!
Lỗi 413 request entity too large không phải là một vấn đề quá nghiêm trọng nhưng nó có thể gây khó chịu và cản trở công việc của bạn nếu không được xử lý. Việc hiểu đúng bản chất của lỗi và áp dụng các giải pháp phù hợp như Phương Nam Vina đã hướng dẫn sẽ giúp bạn tiết kiệm thời gian và công sức. Dù bạn chọn cách chỉnh sửa file cấu hình, liên hệ nhà cung cấp hosting hay sử dụng giải pháp tạm thời, điều quan trọng là hãy luôn chủ động phòng tránh bằng cách tối ưu hóa file trước khi upload.