I'm having a problem using custom error pages in Apache. The default folder is located at /usr/local/apache, but I've set up Virtual Hosts. My website is located in the folder /var/www/vhosts/techlifezone.com/httpdocs/ Now I have a folder called 'errordocs' in the root folder of both websites with HTML files containing custom error messages. But now I want to configure Apache to use those files as error pages. So in my httpd.conf I've added the following: Code: <directory "/var/www/vhosts/techlifezone.com/httpdocs"> ErrorDocument 500 /errordocs/error500.html ErrorDocument 404 /errordocs/error404.html ErrorDocument 401 /errordocs/error401.html ErrorDocument 403 /errordocs/error403.html ErrorDocument 408 /errordocs/error408.html ErrorDocument 400 /errordocs/error400.html AllowOverride All Options Includes Indexes FollowSymLinks </directory> I've also restarted Apache, but it still ignores the settings and displays a simple "page not found" message. The HTML files are all chmodded to 775. It works fine with my other website (royhochstenbach.nl) Am I doing something wrong? It's Apache 2.2 running on CentOS. My full httpd.conf file: Code: # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Direct modifications to the Apache configuration file may be lost upon subsequent regeneration of the # # configuration file. To have modifications retained, all modifications must be checked into the # # configuration system by running: # # /usr/local/cpanel/bin/apache_conf_distiller --update # # To see if your changes will be conserved, regenerate the Apache configuration file by running: # # /usr/local/cpanel/bin/build_apache_conf # # and check the configuration file for your alterations. If your changes have been ignored, then they will # # need to be added directly to their respective template files. # # # # It is also possible to add custom directives to the various "Include" files loaded by this httpd.conf # # For detailed instructions on using Include files and the apache_conf_distiller with the new configuration # # system refer to the documentation at: http://www.cpanel.net/support/docs/ea/ea3/customdirectives.html # # # # This configuration file was built from the following templates: # # /var/cpanel/templates/apache2/main.default # # /var/cpanel/templates/apache2/main.local # # /var/cpanel/templates/apache2/vhost.default # # /var/cpanel/templates/apache2/vhost.local # # /var/cpanel/templates/apache2/ssl_vhost.default # # /var/cpanel/templates/apache2/ssl_vhost.local # # # # Templates with the '.local' extension will be preferred over templates with the '.default' extension. # # The only template updated by the apache_conf_distiller is main.default. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Include "/usr/local/apache/conf/includes/pre_main_global.conf" Include "/usr/local/apache/conf/includes/pre_main_2.conf" LoadModule bwlimited_module modules/mod_bwlimited.so Include "/usr/local/apache/conf/php.conf" Include "/usr/local/apache/conf/modsec2.conf" Include "/usr/local/apache/conf/includes/errordocument.conf" ErrorLog "logs/error_log" DefaultType text/plain ScriptAliasMatch ^/?controlpanel/?$ /usr/local/cpanel/cgi-sys/redirect.cgi ScriptAliasMatch ^/?cpanel/?$ /usr/local/cpanel/cgi-sys/redirect.cgi ScriptAliasMatch ^/?kpanel/?$ /usr/local/cpanel/cgi-sys/redirect.cgi ScriptAliasMatch ^/?securecontrolpanel/?$ /usr/local/cpanel/cgi-sys/sredirect.cgi ScriptAliasMatch ^/?securecpanel/?$ /usr/local/cpanel/cgi-sys/sredirect.cgi ScriptAliasMatch ^/?securewhm/?$ /usr/local/cpanel/cgi-sys/swhmredirect.cgi ScriptAliasMatch ^/?webmail/?$ /usr/local/cpanel/cgi-sys/wredirect.cgi ScriptAliasMatch ^/?whm/?$ /usr/local/cpanel/cgi-sys/whmredirect.cgi Alias /akopia /usr/local/cpanel/3rdparty/interchange/share/akopia/ Alias /bandwidth /usr/local/bandmin/htdocs/ Alias /img-sys /usr/local/cpanel/img-sys/ Alias /interchange /usr/local/cpanel/3rdparty/interchange/share/interchange/ Alias /interchange-5 /usr/local/cpanel/3rdparty/interchange/share/interchange-5/ Alias /java-sys /usr/local/cpanel/java-sys/ Alias /mailman/archives /usr/local/cpanel/3rdparty/mailman/archives/public/ Alias /pipermail /usr/local/cpanel/3rdparty/mailman/archives/public/ Alias /sys_cpanel /usr/local/cpanel/sys_cpanel/ ScriptAlias /cgi-sys /usr/local/cpanel/cgi-sys/ ScriptAlias /mailman /usr/local/cpanel/3rdparty/mailman/cgi-bin/ ScriptAlias /scgi-bin /usr/local/cpanel/cgi-sys/scgiwrap <Directory "/"> Options All AllowOverride All </Directory> <Directory "/usr/local/apache/htdocs"> Options Includes Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <directory "/var/www/vhosts/techlifezone.com/httpdocs"> ErrorDocument 500 /errordocs/error500.html ErrorDocument 404 /errordocs/error404.html ErrorDocument 401 /errordocs/error401.html ErrorDocument 403 /errordocs/error403.html ErrorDocument 408 /errordocs/error408.html ErrorDocument 400 /errordocs/error400.html AllowOverride All Options Includes Indexes FollowSymLinks </directory> <directory "/var/www/vhosts/royhochstenbach.nl/httpdocs"> ErrorDocument 500 /errordocs/error500.html ErrorDocument 404 /errordocs/error404.html ErrorDocument 401 /errordocs/error401.html ErrorDocument 403 /errordocs/error403.html ErrorDocument 408 /errordocs/error408.html ErrorDocument 400 /errordocs/error400.html AllowOverride All Options Includes Indexes FollowSymLinks </directory> <FilesMatch "^\.ht"> Order allow,deny Deny from all Satisfy All </FilesMatch> <IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common CustomLog logs/access_log common <IfModule logio_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> </IfModule> <IfModule alias_module> ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/" </IfModule> <Directory "/usr/local/apache/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> <IfModule mime_module> TypesConfig conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz </IfModule> # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # Direct modifications to the Apache configuration file may be lost upon subsequent regeneration of the # # configuration file. To have modifications retained, all modifications must be checked into the # # configuration system by running: # # /usr/local/cpanel/bin/apache_conf_distiller --update # # To see if your changes will be conserved, regenerate the Apache configuration file by running: # # /usr/local/cpanel/bin/build_apache_conf # # and check the configuration file for your alterations. If your changes have been ignored, then they will # # need to be added directly to their respective template files. # # # # It is also possible to add custom directives to the various "Include" files loaded by this httpd.conf # # For detailed instructions on using Include files and the apache_conf_distiller with the new configuration # # system refer to the documentation at: http://www.cpanel.net/support/docs/ea/ea3/customdirectives.html # # # # This configuration file was built from the following templates: # # /var/cpanel/templates/apache2/main.default # # /var/cpanel/templates/apache2/main.local # # /var/cpanel/templates/apache2/vhost.default # # /var/cpanel/templates/apache2/vhost.local # # /var/cpanel/templates/apache2/ssl_vhost.default # # /var/cpanel/templates/apache2/ssl_vhost.local # # # # Templates with the '.local' extension will be preferred over templates with the '.default' extension. # # The only template updated by the apache_conf_distiller is main.default. # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # PidFile logs/httpd.pid LockFile logs/accept.lock # Defined in /var/cpanel/cpanel.config: apache_port Listen 0.0.0.0:80 Timeout 300 User nobody Group nobody ExtendedStatus On ServerAdmin [email protected] ServerName server.techlifezone.com LogLevel warn # These can be set in WHM under 'Apache Global Configuration' ServerSignature On <IfModule prefork.c> </IfModule> RewriteEngine on RewriteMap LeechProtect prg:/usr/local/cpanel/bin/leechprotect RewriteLock /usr/local/apache/logs/rewrite_lock UserDir public_html # DirectoryIndex is set via the WHM -> Service Configuration -> Apache Setup -> DirectoryIndex Priority DirectoryIndex index.html.var index.htm index.html index.shtml index.xhtml index.wml index.perl index.pl index.plx index.ppl index.cgi index.jsp index.js index.jp index.php4 index.php3 index.php index.phtml default.htm default.html home.htm index.php5 Default.html Default.htm home.html # SSLCipherSuite can be set in WHM under 'Apache Global Configuration' SSLPassPhraseDialog builtin SSLSessionCache dbm:/usr/local/apache/logs/ssl_scache SSLSessionCacheTimeout 300 SSLMutex file:/usr/local/apache/logs/ssl_mutex SSLRandomSeed startup builtin SSLRandomSeed connect builtin <IfDefine SSL> # Defined in /var/cpanel/cpanel.config: apache_ssl_port Listen 0.0.0.0:443 AddType application/x-x509-ca-cert .crt AddType application/x-pkcs7-crl .crl </IfDefine> AddHandler cgi-script .cgi .pl .plx .ppl .perl AddHandler server-parsed .shtml AddType text/html .shtml AddType application/x-tar .tgz AddType text/vnd.wap.wml .wml AddType image/vnd.wap.wbmp .wbmp AddType text/vnd.wap.wmlscript .wmls AddType application/vnd.wap.wmlc .wmlc AddType application/vnd.wap.wmlscriptc .wmlsc <Location /whm-server-status> SetHandler server-status Order deny,allow Deny from all Allow from 127.0.0.1 </Location> # SUEXEC is supported Include "/usr/local/apache/conf/includes/pre_virtualhost_global.conf" Include "/usr/local/apache/conf/includes/pre_virtualhost_2.conf" # DO NOT EDIT. AUTOMATICALLY GENERATED. IF YOU NEED TO MAKE A CHANGE PLEASE USE THE INCLUDE FILES. NameVirtualHost * # Default vhost for unbound IPs <VirtualHost *> ServerName server.techlifezone.com DocumentRoot /usr/local/apache/htdocs ServerAdmin [email protected] </VirtualHost> # DO NOT EDIT. AUTOMATICALLY GENERATED. IF YOU NEED TO MAKE A CHANGE PLEASE USE THE INCLUDE FILES. # SSL <IfDefine SSL> </IfDefine> # CPANEL/WHM/WEBMAIL/WEBDISK PROXY SUBDOMAINS <VirtualHost *> ServerName server.techlifezone.com ServerAlias cpanel.* whm.* webmail.* webdisk.* DocumentRoot /usr/local/apache/htdocs ServerAdmin [email protected] RewriteEngine On <IfModule core.c> SSLProxyEngine On </IfModule> RewriteCond %{HTTP_HOST} ^cpanel\. RewriteCond %{HTTPS} on RewriteRule ^/(.*) https://127.0.0.1:2083/$1 [P] RewriteCond %{HTTP_HOST} ^webmail\. RewriteCond %{HTTPS} on RewriteRule ^/(.*) https://127.0.0.1:2096/$1 [P] RewriteCond %{HTTP_HOST} ^whm\. RewriteCond %{HTTPS} on RewriteRule ^/(.*) https://127.0.0.1:2087/$1 [P] RewriteCond %{HTTP_HOST} ^webdisk\. RewriteCond %{HTTPS} on RewriteRule ^/(.*) https://127.0.0.1:2078/$1 [P] RewriteCond %{HTTP_HOST} ^cpanel\. RewriteRule ^/(.*) http://127.0.0.1:2082/$1 [P] RewriteCond %{HTTP_HOST} ^webmail\. RewriteRule ^/(.*) http://127.0.0.1:2095/$1 [P] RewriteCond %{HTTP_HOST} ^whm\. RewriteRule ^/(.*) http://127.0.0.1:2086/$1 [P] RewriteCond %{HTTP_HOST} ^webdisk\. RewriteRule ^/(.*) http://127.0.0.1:2077/$1 [P] UseCanonicalName Off </VirtualHost> Include "/usr/local/apache/conf/includes/post_virtualhost_global.conf" Include "/usr/local/apache/conf/includes/post_virtualhost_2.conf" # DO NOT EDIT. AUTOMATICALLY GENERATED. IF YOU NEED TO MAKE A CHANGE PLEASE USE THE INCLUDE FILES.
Error message paths are relative to your web root. You could either adjust that, or use the absolute path as a URL. For example: 403: It's a secret to everybody. A 404 appeared! 500 error caused critical damage! I am 503 error.
I tried using the absolute path /var/www/vhosts/techlifezone.com/httpdocs/errordocs but that didn't fix it. And when I use the domain name like http://www.techlifezone.com/errordocs, it doesn't work either
I changed it to this: Code: <directory "/var/www/vhosts/techlifezone.com/httpdocs"> ErrorDocument 500 http://www.techlifezone.com/error500.html ErrorDocument 404 http://www.techlifezone.com/error404.html ErrorDocument 403 http://www.techlifezone.com/error403.html ErrorDocument 408 http://www.techlifezone.com/error408.html ErrorDocument 400 http://www.techlifezone.com/error404.html AllowOverride All Options Includes Indexes FollowSymLinks </directory> and I've put the error files in the root of the website, but it's still not working
I found the cause of the problem. The application vBSEO was configured to use its own page for 404 errors. Changed it, and works fine now