Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Redirect to 404 page or display 404 message?

I am using a cms, and file-not-found errors can be handled in different ways:

  1. The page will not be redirected, but an error-msg will be displayed as content (using the default layout with menu/footer).
  2. The page will be redirected to error.php (the page looks the same like 1. but the address changed)
  3. The page will be redirected to an existing page, e.g. sitemap.php

Is there a method to be preferred in regards to search engines, or does this make no difference?

like image 213
Ilyssis Avatar asked May 31 '11 14:05

Ilyssis


People also ask

Should you redirect to a 404 page?

404s should not always be redirected. 404s should not be redirected globally to the home page. 404s should only be redirected to a category or parent page if that's the most relevant user experience available. It's okay to serve a 404 when the page doesn't exist anymore (crazy, I know).

What is the reason of displaying a 404 pages?

What Causes the 404 Error Message? The 404 error not found means the browser has connected and sent the request to the web server. However, the latter can't find the requested resource. As a result, the browser can't load the web page, showing a 404 error.


2 Answers

If it's not found, then you should issue a 404 page. Doing a redirect causes a 302 code, followed by a '200 OK', implying that there IS some content. A 404 flat out says "there is no file. stop bugging me".

Something like this would present a 404 page with proper header code:

<?php
if ($page_not_found) {
   header('This is not the page you are looking for', true, 404);
   include('your_404_page.php');
   exit();
}
like image 127
Marc B Avatar answered Nov 05 '22 02:11

Marc B


Don't redirect.

Forget about search engines. If I type a URL in and make a small typo and you redirect me away, then I have to type the whole thing in again.

The page will not be redirected, but an error-msg will be displayed as content (using the default layout with menu/footer).

Try to make it clear it is an error page. It shouldn't look too much like a normal page.

The page will be redirected to error.php (the page looks the same like 1. but the address changed)

No. Really, really no.

The page will be redirected to an existing page, e.g. sitemap.php

There are a few redirect status codes in HTTP, none of them are "Not Found, but you might like this instead".

like image 41
Quentin Avatar answered Nov 05 '22 01:11

Quentin