9

Is it possible to redirect user to file file too big page

when POST request size exceeds specified limit?

I am aware about max-request-size option, but it gives just static page that cannot be overloaded.

I am thinking to create a rewrite rule which takes

content-size from request body as input and redirects to error page

UPDATE

now we use nginx as front-end. Any new suggestions?

jonny
  • 357
  • 1
  • 3
  • 14

3 Answers3

19

You should be able to do this using something like:

server {
  server_name example.com;

  client_max_body_size 10m; # or whatever size limit you want
  error_page 413 /custompage.html; # you can also use a named location here if you like
}
Giuseppe
  • 103
  • 4
kolbyjack
  • 7,854
  • 2
  • 34
  • 29
  • but this won't work with most of modern browsers - unfortunaley they can't handle 413 properly. So, I'm afraid there's no solution to this problem (well, unless you can patch all current browsers) – rvs Sep 21 '11 at 18:38
  • 7
    You can change the status code to anything else with error_page if you don't want to actually return 413 to the client. error_page 413 =403 /custompage.html; will use 403, for example. – kolbyjack Sep 21 '11 at 18:42
3

Don't forget to set post_max_size and upload_max_filesize to corresponding value in php.ini.

quanta
  • 50,327
  • 19
  • 152
  • 213
0

Regarding @quanta post, you can also put a lower value in php and use php to display the error and make the redirection correctly. It can be made in other scripting languages also :-)

jflaflamme
  • 306
  • 1
  • 2