The 500 Internal Server Error is a very general HTTP status code that means something has gone wrong on the web site’s server but the server could not be more specific on what the exact problem is. When you receive such an error on your site, a good place to start your troubleshooting is with the error log, which can usually be accessed easily from your administrative panel (cPanel, Plesk, etc.). By looking at the most recent entries, you’ll probably get an idea of what might be going on. From my personal experience and from some basic online research, typically one of three causes can be identified:
- File/directory permissions: These errors can be easily fixed by changing the permissions of the file or directory in question (via FTP program, file manager in your control panel, secure shell access, etc.). Usually, setting to 755 will do the trick.
- .htaccess problems: your
.htaccessfile could have a permission error (see above) or, more likely, it could be performing some odd redirect behaviors (e.g., an endless loop). This becomes more likely when you start using regular expressions. Note: I also read about people having problems with redirects that were caused by their server’s
httpd.conffile not being configured properly.
- Premature end of script headers: this type of error could be caused by a couple of things: (1) the script requires more than the usual time to be processed and is being killed by your system; (2) there is an error within the programming code of the script in question.