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]