Apache htaccess Custom ErrorDocument not working properly for root home page 403 Error Issue and Solution

So I have a domain "testdomain.com".

Inside test domain.com's root is the following .htaccess:

Options +FollowSymLinks -Indexes
ErrorDocument 403 /launch/index.html

Order Deny,Allow
Deny From All
Allow From

When you visit anything other than root things work fine. Eg. if you visit http://testdomain.com/somedirfile.html

It will show the right error in /launch/

But if you just visit the root you get the standard Apache Test page even though a 403 is returned. The reason for this is because of an Alias "Error" in /etc/httpd/httpd.conf

Find this line and comment it out:

Alias /error/ "/var/www/error/"

What happens when visiting root is that it checks for a custom 403 error in /var/www/error/ and when it doesn't find one in there it returns noindex.html (the Apache test page).

However I don't know a better work-around what Apache then does after commenting out that alias is it insists in then looking inside your /www/document_root/error/ folder for a matching custom file. If not it looks for a noindex.html in there.

So all I did was create a no index.html in an error folder within my document root.

This solves the issue but I am not sure of how to make a better solution. Isearched for hours modifying the vhost configuration but nothing worked or helped except the above.

These URLs below had the same issue:


Here is some of the troubleshooting process I went through:

I have an issue where I am only allowing a few IPs to view a website in .htaccess:

Options +FollowSymLinks -Indexes
ErrorDocument 403 /launch/index.html

Order Deny,Allow
Deny From All
Allow From

# Now it works if you go to http://url/somecrap it will take you to /launch/index.html
But if you just go to the reoot http://url/ or http://url you get the Apache Test page instead:


edit /etc/httpd/httpd.conf

# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
# Some examples:
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html

# Putting this all together, we can internationalize error responses.
# We use Alias to redirect any /error/HTTP_.html.var response to
# our collection of by-error message multi-language collections. We use
# includes to substitute the appropriate text.
# You can modify the messages' appearance without changing any of the
# default HTTP_.html.var files by adding the line:
# Alias /error/include/ "/your/include/path/"
# which allows you to create your own set of files by starting with the
# /var/www/error/include/ files and
# copying them to /your/include/path/, even on a per-VirtualHost basis.

#Alias /error/ "/var/www/error/"

[root@serverdev error]# mv noindex.html noindex.html-bad
[root@serverdev error]# readlink -f .

Alias /error/ "/var/www/error/"

#Alias /error/ "/var/www/error/"

AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

[Sun Apr 08 04:09:43 2018] [error] [client] client denied by server configuration: /www/vhosts/vhosttest.com/httpdocs/
[Sun Apr 08 04:09:43 2018] [error] [client] client denied by server configuration: /www/vhosts/vhosttest.com/httpdocs/error


apache, htaccess, custom, errordocument, solutionso, domain, quot, testdomain, followsymlinks, indexes, index, html, eg, http, somedirfile, alias, etc, httpd, conf, var, www, doesn, returns, noindex, commenting, insists, document_root, folder, matching, solves, searched, modifying, vhost, configuration, urls, https, linuxquestions, org, linux, server, serves, forbidden, ips, troubleshooting, allowing, website, url, somecrap, reoot, edit, customizable, responses, flavors, text, redirects, external, examples, cgi, bin, missing_handler, pl, subscription_info, internationalize, redirect, http_, multi, collections, includes, substitute, modify, default, adding, allows, copying, virtualhost, serverdev, mv, readlink, ifmodule, mod_negotiation, mod_include, directory, allowoverride, includesnoexec, addoutputfilter, addhandler, languagepriority, en, es, fr, forcelanguagepriority, fallback, additionally, encountered, apr, vhosts, vhosttest, httpdocs,

Latest Articles

  • Linux Howto Zip Multiple Files and Directories
  • Windows Cannot Format USB drive Device Media is Write Protected Error Solution
  • Linux Mint 20 cannot install snapd missing solution
  • Virtualbox VBOX How To Install Guest-Utils/GuestUtils so drag and drop and clipboard works Ubuntu Mint Debian Linux
  • How to install Kubernetes with microk8s and deploy apps on Debian/Mint/Ubuntu Linux
  • vi how to delete everything to the end of the line or the rest of the line from the cursor
  • Cisco Howto Configure Console Port/Terminal/Comm Server with Async Cable Setup
  • Ubuntu/Debian Linux/Unix Howto Setup Install Syslinux Bootable USB with EFI and MBR from Command Line/CLI Terminal
  • Cisco Switch Howto Reset Password
  • SSH cannot connect to old servers/devices/switches/routers/Cisco/Juniper Unable to negotiate with port 22: no matching key exchange method found. Their offer: diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hell
  • ksnapshot missing in Ubuntu and Linux Mint Solution
  • bash how to hide username/customize prompt Linux Debian Redhat Ubuntu Solution
  • Cisco Router Password Reset Howto Guide Solution Cannot Login /Unknown Enable Password 2600, 2800, 2900, 3900
  • VirtualBox VBox Nat Network Handing Out Wrong IP Address Subnet Solution
  • Unable to mount location Failed to retrieve share list from server: Connection timed out - Samba/Linux Filesharing Not working Ubuntu Mint Linux Solution
  • How To Resize, Reduce a Video to a Specific Size and Quality Ubuntu Linux using ffmpeg
  • vi how to delete all lines in the file
  • Linux Mint / Ubuntu 20 Intel I219 NIC disconnects
  • Linux can't boot/grub boot loader screen with no options solution
  • EFI PXE grub2 Howto guide for Linux EFI PXE Booting on Debian, Mint, Ubuntu, RHEL