Create custom PHP error pages in cPanel without redirecting them away from the page that has thrown the error Create custom PHP error pages in cPanel without redirecting them away from the page that has thrown the error apache apache

Create custom PHP error pages in cPanel without redirecting them away from the page that has thrown the error


As the others have answered this should work:

ErrorDocument 500 /500.php

If you do not specify a full URL it just displays the page (an internal redirect), if you do specify the full URL, then it issues a redirect back to ths client. This is as described by Apache here: http://httpd.apache.org/docs/2.4/mod/core.html#errordocument

Note that when you specify an ErrorDocument that points to a remote URL (ie. anything with a method such as http in front of it), Apache HTTP Server will send a redirect to the client to tell it where to find the document, even if the document ends up being on the same server.

The fact that the above is not working for you means one of several things:

  1. You are doing it wrong and still specifying the full URL even though you claim not to be.
  2. Cpanel is adding the full URL (not sure how you edit the .htaccess file or if it's done via above GUI).
  3. Your .htaccess file is being ignored (perhaps because you are setting the values in the GUI or perhaps because FileInfo is not set at server level so this cannot be specified in .htaccess file (see here: http://httpd.apache.org/docs/2.4/custom-error.html), in which case it must be picking up the full URL itself from other config somewhere.
  4. The 500.php script is doing the redirecting itself (should be obvious from developer tools if preserve log and see if one page is returned or two).
  5. There is a bug in Apache (that I and others are not aware of).
  6. Magic

Can you check out those things?

Might also help to know what version of Apache you are on?

Also have you tried a plain 500.html file just to see if this works without redirecting? In theory a 500.php file should be fine too but would be interesting to narrow it down (and would also show if that change to 500.html was picked up and used or if it was still pointing to 500.php, which would perhaps show this was being picked up from other config than you think).


If you add something like this in your .htaccess file it should simply display the error page without a redirect. I've never used absolute paths like you're doing in your example for error pages so I'm not sure what kind of behavior it causes

ErrorDocument 404 /404.php