
en mi .htaccess
tengo
ErrorDocument 404 http://foo.com/404.html
Funciona, en el sentido de que me recupero de cualquier error de archivo no encontrado y en su lugar muestro la página 404, pero la forma en que funciona es redirigir el URI erróneo usando un 301 a mi 404.html
página.
Esto es malo porque los motores de búsqueda y los rastreadores no terminarán viendo un código 404, sino un código 301 y no eliminarán las páginas eliminadas de sus índices.
¿Puedo hacer que Apache proporcione el contenido de esta página 404 en caso de errores de archivo no encontrado y aún así devolver un código 404 en lugar del 301?
Respuesta1
Deberías intentar utilizar una ruta absoluta o relativa y no una URL.
Mi apache2.conf:
ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
ErrorDocument 500 /error/500.html
Respuesta2
No apuntes a una URL externa
Los documentos de Apache dicen:
La sintaxis es,
ErrorDocument <3-digit-code> <action>
donde puede estar la acción,
- Texto a mostrar. Envuelva el texto entre comillas (").
- Una URL externa a la que redireccionar.
- Una URL local a la que redireccionar.
Apuntar a una URL externa provocará una redirección real, mientras que usar una URL local es interna.
Entonces, para representar el contenido de un archivo, simplemente apúntelo, por ejemplo:
ErrorDocument 404 /404.html
Utilice el código de estado correcto para el trabajo
Esto es malo porque los motores de búsqueda y los rastreadores no terminarán viendo un código 404, sino un código 301 yno eliminará las páginas eliminadas de sus índices.
si la paginausadoexiste y ahora no existe, el código de respuesta correcto es410 desaparecido. 410 es el código para decir "oye, eso no existe", mientras que un 404 solo se interpretará en el sentido de que después de repetidos intentos de acceder a la página que ahora no existe.
Respuesta3
Comente las respuestas de Maxence y AD7six (no tengo suficiente reputación en serverfaul y aparentemente las reputaciones de intercambio de pila no cuentan):
Simplemente resolví el problema de esta manera, pero faltaban las imágenes y los estilos incluidos, ya que la URL sigue siendo la URL a la que el usuario intentaba llamar.
La solución es agregar una etiqueta base en el encabezado del documento 404 como
ErrorDocument 404
o utilizar URL absolutas con o sin protocolo/nombre de dominio.