2011-05-31 26 views
7

estoy usando un CMS, y errores de archivo no encontrado puede ser manejado de manera diferente:¿Redirigir a la página 404 o mostrar el mensaje 404?

  1. La página no será redirigido, pero un error-msg se mostrará como contenido (utilizando el diseño predeterminado con menú/pie de página).
  2. La página se redirigirá a error.php (la página se ve igual a 1. pero la dirección cambió)
  3. La página se redirigirá a una página existente, p. sitemap.php

¿Hay algún método preferido en relación con los motores de búsqueda, o esto no hace la diferencia?

+0

¿El sistema de mantener un diario de la historia de esa URL y por lo tanto saben lo que la URL correcta actual es? Si es así, simplemente haga una redirección interna y presente el contenido actual. De lo contrario, debe entregar el error 404 (para eso es). – user212102

Respuesta

13

Si no se encuentra, entonces debe emitir una página 404. Hacer una redirección genera un código 302, seguido de un '200 OK', lo que implica que hay algo de contenido. Un mensaje 404 dice "no hay archivo. Deje de molestarme".

Algo como esto sería presentar una página 404 con código de cabecera apropiada:

<?php 
if ($page_not_found) { 
    header('This is not the page you are looking for', true, 404); 
    include('your_404_page.php'); 
    exit(); 
} 
+0

Quizás sea mejor poner 'header (...)' y 'exit()' en el script '404.php'. Recuerde que si "incluye" su '404.php' a través de una función, no podrá acceder a sus variables globales primarias. – Mowji

6

No redirigir.

Olvídate de los motores de búsqueda. Si escribo una URL y hago un pequeño error y me redireccionas, entonces tengo que escribir todo de nuevo.

La página no se redirigirá, pero se mostrará un mensaje de error como contenido (utilizando el diseño predeterminado con menú/pie de página).

Trate de dejar en claro que es una página de error. Tampoco debería parecer como una página normal.

La página será redirigido a error.php (la página tiene el mismo aspecto como 1., pero la dirección cambiada)

No. Realmente, realmente no.

La página se redirigirá a una página existente, p. sitemap.php

Hay algunos códigos de estado de redireccionamiento en HTTP, ninguno de ellos es "No encontrado, pero puede que te guste esto en su lugar".

+1

Los redireccionamientos no implican necesariamente que la URL en su barra de ubicación se vuelva a escribir. Tomemos la gran mayoría de las 404 páginas en la web, por ejemplo. De hecho, la opción (2) es baaaad. –

+0

Eso es un buen punto. – Ilyssis

+1

Dado que la pregunta era sobre la interacción entre el servidor y los clientes, parece razonable suponer que se trata de una redirección HTTP. Una redirección interna que no esté expuesta de ninguna manera al cliente no marcaría la diferencia. – Quentin

Cuestiones relacionadas