Ik ben bezig met htaccess, maar het lukt me niet om dit probleem op te lossen. :/
Wat ik graag wil is dat als een pagina of map niet bestaat, een custom error pagina wordt weergeven.
Tot dusver werkt dit, behalve wanneer ik /error/ aanroep. Deze geeft altijd het volgende weer:
You don't have permission to access / on this server.
Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Nu heb ik gemerkt dat dit alleen het geval is wanneer ik DirectAdmin op mijn server heeft staan. En ook de site van DirectAdmin zelf heeft dit 'probleem':
Oke, in /etc/httpd/conf/extra/httpd-multilang-errordoc.conf staat het volgende:
#
# The configuration below implements multi-language error documents through
# content-negotiation.
#
# Required modules: mod_alias, mod_authz_core, mod_authz_host,
# mod_include, mod_negotiation
#
# We use Alias to redirect any /error/HTTP_<error>.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_<error>.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. The default include files will display
# your Apache version number and your ServerAdmin email address regardless
# of the setting of ServerSignature.
Alias /error/ "/var/www/error/"
<Directory "/var/www/error">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Require all granted
LanguagePriority en cs de es fr it ja ko nl pl pt-br ro sv tr
ForceLanguagePriority Prefer Fallback
</Directory>
ErrorDocument 400 /400.shtml
ErrorDocument 401 /401.shtml
ErrorDocument 403 /403.shtml
ErrorDocument 404 /404.shtml
ErrorDocument 405 /405.shtml
ErrorDocument 408 /408.shtml
ErrorDocument 410 /410.shtml
ErrorDocument 411 /411.shtml
ErrorDocument 412 /412.shtml
ErrorDocument 413 /413.shtml
ErrorDocument 414 /414.shtml
ErrorDocument 415 /415.shtml
ErrorDocument 500 /500.shtml
ErrorDocument 501 /501.shtml
ErrorDocument 502 /502.shtml
ErrorDocument 503 /503.shtml
ErrorDocument 506 /506.shtml
Ik ben bang dat deze na een update van DirectAdmin weer aangepast kan worden. Misschien dat je iets vergelijkbaars in: /usr/local/directadmin/data/templates vindt, waarna je deze template kan customizen door deze te kopiëren naar /custom:
cd /usr/local/directadmin/data/templates
cp virtual_host2*.conf custom
cd custom
Omdat ik nu weet waar ik op moet zoeken heb ik her en der wat topics gevonden op Google, over een zelfde soort map in /var/www, namelijk een map met icons. Wanneer je naar example.com/icons gaat, zie je een lijst met icons. Nu zijn er mensen die zeggen dat je de Alias in httpd-autoindex.conf kunt commenten. Dit zou dan toch ook moeten werken voor de alias in httpd-multilang-errordoc.conf?
DirectAdmin is een typische, ook ik had (en heb nog steeds) dit probleem. Er zijn nog andere aliassen, zoals /config - deze wijst naar poort 2222 via welke DA meestal bereikbaar is.
Na heel lang zoeken (mijn webboer kon mij ook niet helpen omdat mijn hosting zodanig is opgezet dat ik geen individuele httpd.conf heb, wss omdat ik shared hosting heb) vond ik het volgende.
Waarschijnlijk is inderdaad de enige oplossing het verwijderen van de alias regels (of je comment ze in eerste instantie). In de comments wordt ook ergens opgemerkt dat dit naar alle waarschijnlijkheid niets breekt. Daarna is wellicht een herstart van je webserver(proces) nodig.
Als een alternatief kun je natuurlijk altijd je "error" pagina's ergens anders onderbrengen. Ik redirect ook niet naar een 404 of 500 error pagina maar laad een standaard pagina met een tekstboodschap en de bijbehorende HTTP headers. Daar moet je onder de motorkap van je eigen website wel voorzieningen voor hebben dan, natuurlijk.
Ik heb zelf nog een beetje zitten rondkijken en blijkbaar heeft DirectAdmin (op Admin level) ondersteuning voor "Custom HTTPD Configuration", ik heb daar de volgende lijnen aan toegevoegd:
Alias /error/ /home/NAAM/domains/DOMEIN/public_html/error/
Alias /icons/ /home/NAAM/domains/DOMEIN/public_html/icons/
En nu worden deze keurig doorgelinkt naar de mappen in mijn public_html.
Ik zal dit nu ook doen voor /config en alle andere aliassen.
Tot dusver lijkt me dit de makkelijkste oplossing. Ik heb alleen geen idee of dit kwaad kan...