2

我正在尝试从 Google 图片搜索结果中保存图片,但是当我在查询字符串参数中发送图片的 src 时,会出现以下错误:

Request-URI Too Long 
The requested URL's length exceeds the capacity limit for this server.

Apache/2.4.18 (Ubuntu) Server at 127.0.1.1 Port 80

当我在我的本地机器上遇到这个错误时,我可以测试你们得到的任何想法。

注意:我确实在文件中设置了LimitRequestLineand 。但到目前为止还没有运气。LimitRequestFieldSize100000/etc/apache2/apache2.conf

任何帮助表示赞赏。

4

3 回答 3

5

请求参数不能有无限长。我的猜测是您在将图像 src 作为查询参数发送时达到了最大长度。

这里的答案LimitRequestLine来看,您似乎可以设置LimitRequestFieldSize最多 8192 个字节或低于(而不是高于)该值的任何值。

在 Apache 中,如果您将其用作网络服务器,则可以将其限制为低于默认 8190 字节的内容,但不能限制在高于默认值的内容,而无需更改源代码和重新编译。

另请阅读此问题,其中包含有关 url 最大长度的更多信息:

这是一个流行的问题,由于最初的研究已经有 9 年的历史,我会尽量保持最新:截至 2016 年 11 月,该建议仍然有效。尽管 IE11 可能接受更长的 URL,但旧版 IE 安装的普遍性加上搜索引擎的限制意味着保持在 2000 个字符以下是最好的一般策略。

换句话说:尽量保持在 2000 个字符以下并使用 POST 发送大量数据......

于 2016-11-29T08:17:47.587 回答
1

我也遇到了同样的问题,但通过在正确的 < VirtualHost > 下的 httpd.conf 文件中添加 LimitRequestFieldSize 1000000000 LimitRequestLine 1000000000 行来解决

于 2019-07-12T13:50:47.840 回答
0

如果您使用的是 CPanel 和 Cloudflare,这就是我为解决它所做的:
主页 -> 服务配置 -> Apache 配置 -> 包含编辑器 -> 预 VirtualHost 包含 -> 选择一个 Apache 版本

LimitRequestFieldSize 1048576 LimitRequestLine 1048576

按更新,然后按重新启动 Apache。

我尝试使用上述答案,Cloudflare 说:
400 Bad Request Request Header Or Cookie Too Large cloudflare-nginx

所以我不得不降低价值。

于 2021-10-12T01:36:41.250 回答