Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Httpd Wiki" for change 
notification.

The following page has been changed by RichBowen:
http://wiki.apache.org/httpd/RewriteMissingFiles

New page:
= Missing Files =

== Problem ==

The general idea here is that you want to redirect visitors if a particular 
file is missing; however it is considered better to simply state the requested 
URI is missing and issue a 404 Not Found.  Some site developers may choose not 
to do this and this method will provide an alternative and a variety of choices.

== Issue a non-404 ==

In this example, '''example.com''' should, of course, be replaced with your own 
website address. We want to issue a '''clean web page''' to outsiders and those 
with an empty referer but sill allow internal people to get the standard 404 
Not Found error message.
{{{
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{HTTP_REFERER} !example\.com [NC]
RewriteRule ^ /UnderConstruction.html [L]
}}}


== Replace the Missing File with Another File ==
If you want the missing file to be replaced with a URL from another site, you 
can do so by providing a full URL (http//:some.other.server/) in that 
'''RewriteRule''':
{{{
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^ http://other.example.com/ [R=302,L]
}}}

This is the same as
{{{
# this issues a 302 redirect, not a 404 not found status code
ErrorDocument 404 http://other.example.com/
}}}
does.

== Discussion ==

Issuing a non-404 (file found but not the one requested) is a way to cleanly 
fail if site content if missing. However this can confuse and polute the web 
crawlers indexing your site.

Issuing a Redirect-If-Missing is another approach however this too can lead to 
later confusion about which resource is valid if not up-to-date.

Bottom-line: Choose a particular error eporting and handling policy and stick 
with it.

Reply via email to