【问题标题】:Is there a way to make a custom return message when LimitRequestBody is exceeded?有没有办法在超过 LimitRequestBody 时制作自定义返回消息?
【发布时间】:2010-12-18 06:15:12
【问题描述】:

如果用户超出我的上传限制,我将使用 LimitRequestBody 来切断用户。 IT 会返回这样的消息

请求实体太大 请求的资源 /index.php 不允许使用 GET 请求请求数据,或者请求中提供的数据量超过容量限制。

此外,在尝试使用 ErrorDocument 处理请求时遇到 404 Not Found 错误。 标志

我不完全确定它在这里想要什么.. 但如果用户超过它确实会被触发。

【问题讨论】:

    标签: php javascript jquery apache file-upload


    【解决方案1】:

    由于 LimitRequestBody 处于 Apache 级别(即,从不命中 PHP),您需要在 Apache 级别替换错误文档。你这样做的方式是使用ErrorDocument

    从输出 Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. 看来,似乎设置了一个 ErrorDocument,但 Apache 找不到它。

    基本上,您将需要以下内容:

    ErrorDocument 413 /request-too-large.php
    

    request-too-large.php 文件可能会收到一个标准的 GET 请求 - 任何 POST 参数都将丢失,但您可以查看 $_SERVER$_REQUEST 的内部,看看是否还有其他任何东西从原始请求。

    在为错误文档执行 PHP 方面可能需要一段时间才能做到这一点。如果您无法直接使用 PHP 进行操作,请使用纯 HTML 页面,然后设置 META 重定向和/或 JavaScript 重定向以将您发送到 PHP 页面。

    您也可以使用完整的 URL 设置它 - 这将使用客户端重定向。

    【讨论】:

    • 您好,感谢您的回复。不幸的是,我尝试执行 ErrorDocument 413 /error_file.php 但 413 似乎不起作用.. 所有其他人都喜欢 500 或 404 但不是 413
    • 您使用的是什么版本的 Apache? 413 处理曾经存在一些错误,因为在执行新请求之前没有重置内容长度。另外,您是否尝试过客户端重定向(使用完整的 URL)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多