ProxyErrorOverride Results in Internal Server Error
Setting ProxyErrorOverride in htaccess results in Internal Server Error.
By. Jacob
Edited: 2019-12-05 16:22
If you are trying to get ProxyErrorOverride to work and wondering why you are getting the infamous Internal Server Error rather than the beautiful custom error page you have designed for your website, then it might be because you are trying to include it in your .htaccess file.
I was working on implementing a universal 404 error handler, basically letting Beamtic's CMS handle the error rather than Apache or php-fpm. This took me a few hours, since I hate meddling in .htaccess files. The syntax is just too unintuitive, resulting in Internal Server Error. I find it much easier to handle things from PHP.
Anyway, to get it to work, you should instead open up your Virtual Host (VHOST) configuration file. These are often located in /etc/apache2/sites-available/, and would probably look like this, done right:
<VirtualHost *:80>
DocumentRoot "/var/www/example/"
ServerName example.com
ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
CustomLog ${APACHE_LOG_DIR}/example.com-access.log common
ProxyErrorOverride On
<Directory "/var/www/example/">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Server configuration
And, now that you are at it, you might as well set AllowOverride to None:
AllowOverride None
Then, configure your VHOSTs from the configuration files instead of using htaccess.
If you got settings that are shared between multiple domains, you can just create a external .conf and include it in your VHOST config files.
Include /usr/local/apache2/conf/my-amazing-stuff.conf
Using the /usr/local/ location should avoid the risk of having your configuration files accidentally overwritten doing system updates.
Links
- /usr/local : Local hierarchy - refspecs.linuxfoundation.org
- ProxyErrorOverride Directive - apache.org
Tell us what you think: