您现在的位置: 365建站网 > 365学习 > HTTP 错误 413.1 - Request Entity Too Large错误的解决方法

HTTP 错误 413.1 - Request Entity Too Large错误的解决方法

文章来源:365jz.com     点击数:284    更新时间:2021-01-28 13:58   参与评论

在上传文件时,如下提示:

image.png

HTTP 错误 413.1 - Request Entity Too Large

未显示页面,因为请求实体过大。

最可能的原因:

Web 服务器拒绝为请求提供服务,因为该请求实体过大。

Web 服务器无法为请求提供服务,因为它正尝试与客户证书进行协商,但请求实体过大。

请求 URL 或者到 URL 的物理映射(即,到 URL 的内容的物理文件系统路径)过长。


PHP配置修改

php默认的文件上传限制一般是2M。修改方法如下:

  • 打开php.ini,把 upload_max_filesize 和 post_max_size 修改为100M,然后重启。


Nginx服务器

原因是请求实体太长了。一般出现种情况是Post请求时Body内容Post的数据太大了

如上传大文件过大; 如POST数据比较多

处理方法修改nginx.conf的值就可以解决了。

client_max_body_size 2M        改为 
client_max_body_size 10M

可以选择在http{ }中设置:client_max_body_size 20m;
也可以选择在server{ }中设置:client_max_body_size 20m;
还可以选择在location{ }中设置:client_max_body_size 20m;
三者有区别
设置到http{}内,控制全局nginx所有请求报文大小
设置到server{}内,控制该server的所有请求报文大小
设置到location{}内,控制满足该路由规则的请求报文大小


Apache服务器

可能的原因

1、请求的URL过长,改为POST

2、POST数据过大,修改php.ini参数:post_max_size = 20M,upload_max_filesize = 20M

3、返回的数据过大,修改httpd.conf:

SetOutputFilter PHP
SetInputFilter PHP
LimitXMLRequestBody 20971520
LimitRequestBody 20971520


将这个的值改大到超过你的软件大小就可以了
写到apache的配置文件里面即可。

IIS服务器(Windows Server 系统IIS)

好好的网站,突然上传30多M的文件,报错:IIS 8.5详细错误-413.1-Request Entity Too Large
根据一顿搜索,找到以下解决方案:
步骤一:编辑C:\Windows\System32\inetsrv\config下的applicationHost.config文件,找到自己项目的location项,在system.webServer下添加如下代码:

<serverRuntime uploadReadAheadSize="1048576000" />

uploadReadAheadSize单位为(B:bytes),这里1048576000 = 1000M,实际大小按需求设置。完整结构如下:

<location path="EMWeb">
    <system.webServer>
        <serverRuntime uploadReadAheadSize="1048576000" />
    </system.webServer></location>

步骤二:编辑网站项目根目录下的web.config配置文件,按节点顺序找到 configuration > system.web > httpRuntime 设置 maxRequestLength 属性,单位为(B:bytes),实际大小按需求设置,注:asp.net中默认上传限制是4M(4096KB)。代码如下:

<configuration>
  <system.web>
    <httpRuntime targetFramework="4.5" requestValidationMode="2.0" maxRequestLength="1048576000" />
  </system.web></configuration>

步骤三:仍然是网站项目目录下的web.config配置文件,按节点顺序找到 configuration > system.webServer,添加以下代码:

<security>
  <requestFiltering>
    <!-- 1000 MB in bytes -->
    <requestLimits maxAllowedContentLength="1048576000" />
  </requestFiltering></security>

最后,重启IIS,重启网站就能正常上传文件了。

上面的三个步骤,并不是都要挨个做。步骤一,我发现服务器C盘下的applicationHost.config文件,里根本没有uploadReadAheadSize,于是没有管。搜索步骤二中的maxRequestLength,发现已经设置过,也没管,只新增了步骤三种的代码块,问题解决!

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer> 
<security>
            <requestFiltering>
                <requestLimits maxAllowedContentLength="1048576000" />
            </requestFiltering>
        </security>
    </system.webServer>
</configuration>


如对本文有疑问,请提交到交流论坛,广大热心网友会为你解答!! 点击进入论坛


发表评论 (284人查看0条评论)
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码: 点击我更换图片
最新评论
------分隔线----------------------------