Apache custom error pages

Discussion in 'Linux, BSD and Other OS's' started by RHochstenbach, Apr 14, 2010.

  1. RHochstenbach

    RHochstenbach Administrator Staff Member

    Likes Received:
    26
    Trophy Points:
    48
    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.  
    
     
  2. Anti-Trend

    Anti-Trend Nonconformist Geek Staff Member

    Likes Received:
    118
    Trophy Points:
    63
  3. RHochstenbach

    RHochstenbach Administrator Staff Member

    Likes Received:
    26
    Trophy Points:
    48
    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 :(
     
  4. Anti-Trend

    Anti-Trend Nonconformist Geek Staff Member

    Likes Received:
    118
    Trophy Points:
    63
     
  5. RHochstenbach

    RHochstenbach Administrator Staff Member

    Likes Received:
    26
    Trophy Points:
    48
    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 :(
     
  6. RHochstenbach

    RHochstenbach Administrator Staff Member

    Likes Received:
    26
    Trophy Points:
    48
    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 :)
     

Share This Page