2010-12-18 7 views
0

Ich benutze LimitRequestBody, um den Benutzer zu schneiden, wenn er mein Upload-Limit überschreitet. Sie gibt eine Meldung wie dieseGibt es eine Möglichkeit, eine benutzerdefinierte Rückmeldung zu erstellen, wenn LimitRequestBody überschritten wird?

Anfrage Wesen zu groß Die angeforderte Ressource /index.php nicht Anforderungsdaten mit GET-Anfragen, oder die Menge an Daten, die in der Anfrage übersteigt die Kapazitätsgrenze ermöglichen.

Darüber hinaus wurde beim Versuch, ein ErrorDocument zum Verarbeiten der Anforderung zu verwenden, ein Fehler 404 Not Found gefunden. logo

Ich bin nicht ganz sicher, was es hier will .. aber es wird ausgelöst, wenn der Benutzer überschreitet.

Antwort

1

Da LimitRequestBody auf der Apache-Ebene ist (dh niemals PHP erreicht), müssen Sie das Fehlerdokument auf Apache-Ebene ersetzen. Die Art, wie Sie das tun, ist mit ErrorDocument.

Von der Ausgabe Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request. sieht es so aus, als ob ein ErrorDocument eingerichtet ist, aber Apache kann es nicht finden.

Grundsätzlich müssen Sie so etwas wie:

ErrorDocument 413 /request-too-large.php 

Der Antrag allzu large.php Datei wird wahrscheinlich eine Standard-GET-Anfrage bekommen - alle POST-Parameter verloren gehen, aber Sie können innerhalb $_SERVER aussehen und $_REQUEST, um zu sehen, ob noch etwas von der ursprünglichen Anfrage übrig ist.

Es kann eine Weile dauern, um das richtige für die Ausführung von PHP für das Fehlerdokument zu bekommen. Wenn Sie nicht direkt mit PHP arbeiten können, verwenden Sie eine einfache HTML-Seite und richten Sie dann eine META-Redirect- und/oder JavaScript-Redirect ein, um Sie auf eine PHP-Seite zu schicken.

Sie können es auch mit einer vollständigen URL festlegen - dies wird eine clientseitige Umleitung verwenden.

+0

Hallo und danke für die Antworten. Unfortunatlly habe ich versucht zu tun scheinen Errordocument 413 /error_file.php aber 413 nicht Arbeit zu sein .. alle anderen tun wie 500 oder 404, aber nicht 413 – john

+0

Welche Version von Apache verwenden Sie? Früher gab es ein paar Fehler bei der 413-Behandlung, weil die Inhaltslänge vor der neuen Anfrage nicht zurückgesetzt wurde. Haben Sie die clientseitige Weiterleitung stattdessen (mit der vollständigen URL) versucht? –

Verwandte Themen