Saltar al contenido

Reescribe la URL después de redirigir el error 404 htaccess

Solución:

Pruebe esto en su .htaccess:

.htaccess

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]

los ErrorDocument redirige todos los 404 a una URL específica, todos los 500 a otra URL (reemplácela con su dominio).

Las reglas de reescritura asignan esa URL a su script 404.php real. Las expresiones regulares de RewriteCond se pueden hacer más genéricas si lo desea, pero creo que debe definir explícitamente todos los códigos de ErrorDocument que desea anular.

Redirección local:

Cambie .htaccess ErrorDocument a un archivo que exista (debe existir o obtendrá un error):

ErrorDocument 404 /pages/errors/404_redirect.php

404_redirect.php

<?php
   header('Location: /404/');
   exit;
?>

Redirigir según el número de error

Parece que deberás especificar un ErrorDocument línea en .htaccess para cada error que desee redirigir (consulte: Apache ErrorDocument y Apache Custom Error). los .htaccess El ejemplo anterior tiene varios ejemplos. Puede usar lo siguiente como el script de redireccionamiento genérico para reemplazar 404_redirect.php arriba.

error_redirect.php

<?php
   $error_url = $_SERVER["REDIRECT_STATUS"] . "https://foroayuda.es/";
   $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;
?>

Pon este código en tu .htaccess expediente

RewriteEngine On
ErrorDocument 404 /404.php

dónde 404.php es el file name y colocado en la raíz. Puedes poner full path aqui.

Intente agregar esta regla al cima de su htaccess:

RewriteEngine On
RewriteRule ^404/?$ /pages/errors/404.php [L]

Luego, bajo eso (o cualquier otra regla que tenga):

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^ http://domain.com/404/ [L,R]
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *