404: Difference between revisions

m Text replacement - "(?s)<source ([^>]*)>(.*?)<\/source>" to "<syntaxhighlight $1>$2</syntaxhhighlight>"
Tag: Reverted
m Text replacement - "<(\/?)source" to "<$1syntaxhighlight"
 
(One intermediate revision by the same user not shown)
Line 8: Line 8:
<syntaxhighlight lang="apache">
<syntaxhighlight lang="apache">
ErrorDocument 404 /
ErrorDocument 404 /
</source>
</syntaxhighlight>


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.
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.
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">
<syntaxhighlight lang="apache">
<VirtualHost *>
<VirtualHost *>
   UseCanonicalName Off
   UseCanonicalName Off
Line 21: Line 21:
   ErrorDocument 404 /errors/notfound.php
   ErrorDocument 404 /errors/notfound.php
</VirtualHost>
</VirtualHost>
</syntaxhhighlight>
</syntaxhighlight>
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>
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}}
{{References}}