Alexander (HH): Post-Daten nach 404-Redirect behalten

Beitrag lesen

Moin Moin!

moin,

... Es sieht so aus, als ob der Apache die POST-Daten schlicht und ergreifend "vergisst", wenn er das ErrorDocument aufruft.

Wieso "vergisst"? Hast Du schonmal das ErrorDocument in STDIN nachschauen lassen? Da stehnse nämlich, die POST-Daten ;-)

Das "große Geheimnis" ist die Environment-Variable REDIRECT_REQUEST_METHOD, die der Apache bei einem INTERNEN Redirect setzt. Die steht bei einem POST auf eine 404-Seite nämlich tatsächlich auf POST. Aber offensichtlich wertet PHP in diesem Fall nur die normale REQUEST_METHOD aus, und die ist tatsächlich GET.

Bleibt die Frage nach dem Sinn.

Wenn unter einer gewissen URL ein Programm POST-Daten auswerten soll, dann bitte mit einem "richtigen" Redirect (301, 302, 307) und nicht mit 404. 404 ist kein Redirect, auch wenn Apache einen INTERNEN Redirect macht, um eine eigene 404-Seite zu ermöglichen. Oder statt der Redirects stumpf den kürzestmöglichen URL-Prefix finden und dort ein Programm hinsetzen, dass PATH_INFO auswertet.

Siehe übrigens auch Doing a proper 404 redirect.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so".