Есть ли способ сделать пользовательское возвращаемое сообщение при превышении LimitRequestBody? - PullRequest
0 голосов
/ 18 декабря 2010

Я использую LimitRequestBody, чтобы отключить пользователя, если он превышает мой лимит загрузки. ЭТО возвращает сообщение как это

Запрос слишком большой Запрашиваемый ресурс /index.php не разрешает данные запроса с запросами GET или объем данных, предоставленных в запросе, превышает ограничение емкости.

Кроме того, при попытке использовать ErrorDocument для обработки запроса возникла ошибка 404 Not Found. логотип

Я не совсем уверен, чего он хочет здесь ... но он срабатывает, если пользователь превышает.

1 Ответ

1 голос
/ 18 декабря 2010

Поскольку 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 - это будет использовать перенаправление на стороне клиента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...