Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

534
Vistas
Cómo redirigir errores 404 (y 403) a index.html con una respuesta 200

Estoy construyendo un sitio web estático que usa JS para analizar una URL para determinar qué mostrar.

Necesito cada URL para abrir index.html donde el JS puede separar la ruta y actuar en consecuencia.

Por ejemplo, http://my.site/action/params se analizará como una action con algunos parámetros params .

En segundo plano, esto se servirá desde AWS S3 a través de CloudFront mediante la redirección de errores personalizada, y esto funciona bien en AWS.

Sin embargo, estoy tratando de crear un entorno de desarrollo en Ubuntu con apache y quiero emular la redirección localmente.

He encontrado un par de páginas que se acercan, pero no del todo.

Esta página muestra cómo redirigir a una página de error personalizada en el servidor alojado en un archivo llamado "404". Como 404 es el código de respuesta de error real, el ejemplo parece un poco confuso y tengo problemas para modificar el ejemplo para que apunte a index.html.

El ejemplo en la respuesta aceptada sugiere:

 Redirect 200 /404 ErrorDocument 404 /404

que he modificado a:

 Redirect 200 /index.html ErrorDocument 404 /index.html

Sin embargo, esto devuelve una página de error estándar 404 No encontrado.

Si elimino la línea Redirect , dejando solo la línea ErrorDocument , obtengo la página index.html devuelta según sea necesario, pero la respuesta de estado https sigue siendo un código 404 donde necesito que sea un 200.

Si dejo la línea Redirigir como en el ejemplo, en realidad obtengo el mismo resultado que mi versión modificada, por lo que sospecho que esta es la línea incorrecta, pero no puedo resolverlo.

(Estoy usando la consola Chrome Dev Tools para ver los códigos de estado, etc.).

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Creo que he encontrado una solución usando reglas de reescritura en lugar de documentos de error.

 RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L]

La clave que me faltaba en este enfoque parece no incluir un R=??? código de respuesta de estado al final de la regla de reescritura. ¡Me tomó un tiempo encontrar eso!

Como usa mod_rewrite en lugar de definir páginas de error, asumo que el mecanismo es diferente a cómo lo hace CloudFront, pero para las necesidades de mi sistema de desarrollo, parece que el resultado es el mismo, lo que significa que puedo trabajar en el sitio sin tener que invalidar el Caché de CloudFront después de cada cambio y carga de código.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda