¿Como hago el .htaccess para el 404?

publicado por: Anonymous

Como hago un .htaccess para que cuando detecte un error 404 redireccione a si misma, o sea al índex.html.

Ya tengo el archivo y lo subí a la pagina en la ruta /public_html, pero no se que ponerle adentro para que funcione.

Ya intenté con: ErrorDocument 404 http://yoyomero.com Pero no funciona

solución

En el archivo .htaccess debes crear un código similar a este:

RewriteEngine On
ErrorDocument 404 /404.php

Nota: Existen muchas opciones y diferentes tipos de estructura y diferentes maneras de redireccionar a una página específica de error ya sea utilizando .htaccess o PHP nativamente entre otros.

Algo más avanzado a los diferentes errores de redirecciones.

ErrorDocument 404 http://example.com/404/
ErrorDocument 500 http://example.com/500/
# or map them to one error document:
# ErrorDocument 404 /pages/errors/error_redirect.php
# ErrorDocument 500 /pages/errors/error_redirect.php

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/404/$
RewriteRule ^(.*)$ /pages/errors/404.php [L]

RewriteCond %{REQUEST_URI} ^/500/$
RewriteRule ^(.*)$ /pages/errors/500.php [L]

# or map them to one error document:
#RewriteCond %{REQUEST_URI} ^/404/$ [OR]
#RewriteCond %{REQUEST_URI} ^/500/$
#RewriteRule ^(.*)$ /pages/errors/error_redirect.php [L]

El .htaccess del ejemplo anterior tiene varios ejemplos en el mismo. Se puede utilizar el siguiente como el script de redireccionamiento genérico para reemplazar 404_redirect.php anteriormente.

error_redirect.php

<?php
   $error_url = $_SERVER["REDIRECT_STATUS"] . '/';
   $error_path = $error_url . '.php';

   if ( ! file_exists($error_path)) {
      // this is the default error if a specific error page is not found
      $error_url = '404/';
   }

   header('Location: ' . $error_url);
   exit;
?>

Fuente SO inglés

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *