Changes

Jump to navigation Jump to search
1,609 bytes added ,  11:21, 19 October 2016
Created page with "Tumbeasts sign1|200px|right 404 is the server response code for "Document Not Found". You can do some interesting things with your server to pro..."
[[File:Tumbeasts sign1.png|Tumbeasts sign1|200px|right]]

404 is the server response code for "Document Not Found".

You can do some interesting things with your server to provide a better (or amusing) experience to the user<ref>https://httpd.apache.org/docs/current/mod/core.html#errordocument</ref>.

Here's a simple example just redirects a person to your homepage for any request that would otherwise be 'not found'. It's not actually all that helpful.
<source lang="apache">
ErrorDocument 404 /
</source>

Here's a more interesting example for using an ErrorDocument in a virtual hosting scenario where you want to handle not just missing documents, but also 'missing' domains.
The challenge: If there's no DocumentRoot, where will the script live? <code>[https://httpd.apache.org/docs/current/mod/mod_alias.html#alias Alias]</code> to the rescue.

<source lang="apache">
<VirtualHost *>
UseCanonicalName Off
VirtualDocumentRoot /var/www/clients/%-2/%0/
ServerName catchall.host
Alias /errors /var/www/default/errors/
ErrorDocument 404 /errors/notfound.php
</VirtualHost>
</source>
Now, when an unconfigured domain is requested, the script at /var/www/default/errors/notfound.php is invoked instead. This script can check <code><nowiki>$_SERVER['HTTP_HOST']</nowiki></code> to see what domain was requested. If it is actually configured, then we have a regular 404. If it's not configured, we can display some alternate error message. You could redirect to a "default" domain, or show a sign-up screen for your hosting service.<ref>http://serverfault.com/a/685521/192385</ref>

{{References}}
4,558

edits

Navigation menu