HTTP Error 410: Gone

It has been a while since I changed the backend of my site fron NewsPro to Movable Type. A side effect of this change was that all pages changed URL, which I considered a minor problem since most people enter the site through the home page (which did not change). Normally I try to keep URL's the same, but the old system used horrible filenames like 1025286960,58049,.html and stored all files in a single directory.

Like I said, most visitors enter the site through the fronpage, but there are some people looking for specific information with search engines. Until today these visitors were presented a '404 Page not found' error page of my provider directly followed by the homepage of my provider. In other words, these visitors end up at a completely useless page, and won't ever visit my site anymore!!!!

Something had to change. First, I wanted to change the error message from 404 (Not Found) to 410 (Gone), since the latter message is more precise. All visitors looking for never-existing files will still get the old 404 message. I read about this code a while ago on dive into mark, and I kept it in mind for using it on m own site.

Secondly, I want to show them another page, which at least links to my site. For the moment I chose to present them the search page, so at least they can search my site for the information they are looking for. I am planning to create a separate error page explaing what has happened in more detail, but until now I will just show the search page.

So how did I set this all up?
The Apache server has the ability to specify configuration options in a file called .htaccess. The settings in this file are valid for the current and all underlying directories, and thus can be overruled by another file. I created this file in the root directory of my site and added the following information:

ErrorDocument 410 /cgi-bin/mt/mt-search.cgi
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/cgi-bin/newspro
RewriteRule cgi-bin/newspro/(.*) - [G,L]

In 'normal' language, these lines say the following:
The first line says that the page at /cgi-bin/mt/mt-search.cgi (which is my search page) has to be shown in case a request has status 410: Gone.
The second and third lines activate and configure a module for the Apache webserver calles mod_rewrite, which allows me to process the next two lines.
The fourth line defines the condition to me used for the rewrite. It says: if the requested URL starts with '/cgi-bin/newspro'.
The last line specifies what has to happen if the condition above is met: rewrite 'cgi-bin/newspro/*.*' with nothing (-). Besides the rewrite (which does nothing) two options have been specified: G and L. The first changes the status to Gone (410), and the L tells that this is the last rule to process.

In short: if the URL contains /cgi-bin/newspro, the status will be changed to Gone, and when error 410 (Gone) occurs, the search page will be shown.

Categories:

1 Comments

Just a thought said:

Surely if these pages still exist, but the URI has changed, you should issue a 301 (Moved Permanently) response pointing to the new URI?

410 is only if the pages have been deleted.

Leave a comment

1 TrackBacks

Listed below are links to blogs that reference this entry: HTTP Error 410: Gone.

TrackBack URL for this entry: http://mt.ai-no.com/mt-tb.cgi/258

A while ago, I explained how I configured the server to return HTTP Error 410: Gone for all requests for pages created with my old CMS. After installing Movable Type, all pages of my site moved to another location, and I was not able to work out the ne... Read More

About this Entry

This page contains a single entry by Jeroen Sangers published on June 11, 2003.

Fancy e-mail was the previous entry in this blog.

Internet Explorer is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.12