This Confluence has been LDAP enabled, if you are an ASF Committer, please use your LDAP Credentials to login. Any problems file an INFRA jira ticket please.

Page tree
Skip to end of metadata
Go to start of metadata

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.

  • No labels