Tutorial: Cómo redirigir error 404 en Wordpress

  • Autor Autor Cicklow
  • Fecha de inicio Fecha de inicio
Personalmente no lo uso, ya que es como tener anestesia general...
Nunca sabes donde hay errores que arreglar.
 
creo que ya no funciona, pues en tu demo :ambivalence:
 
El problema de este código es que devuelve un 302:

Insertar CODE, HTML o PHP:
<?php
header ('HTTP/1.1 404 Not Found');
header('location: /');
die();
?>

Resultado:

Insertar CODE, HTML o PHP:
status HTTP/1.1 302 Moved
Temporarily


El código más completo sería este:

Insertar CODE, HTML o PHP:
<?php
header("HTTP/1.1 301 Moved Permanently");
header("Location: http://dominio.com/");
exit();
?>

Resultado:

Insertar CODE, HTML o PHP:
HTTP/1.1 301 Moved
Permanently

A gusto del consumidor.
Saludos!
 
Buenisimo. gracias por compartirlo. :encouragement:
 

Hola me parece muy bueno tu aporte, pero también seria posible crear una pagina 404 que diga por ejemplo: "Pagina no encontrada, sera redireccionado a la Pagina Principal, Muchas Gracias" y que automaticamente te redireccione despues de un par de segundos como para que el usuario pueda leer el mensaje. Es solo una idea, si alguien sabe como hacerlo seria bueno que lo comparta. Gracias de todos modos.
 

sisi, es solo un code de redireccion Meta refresh - Wikipedia, the free encyclopedia
 
Muchas gracias, justo lo necesitaba.
 
En mi caso como uso Nginx no tengo Htaccess pero este código en la web funciona perfectamente.

Hacedlo con htaccess y os ahorráis meterlo en cada página.


---------- Post agregado el 20-sep-2013 hora: 18:32 ----------

Me parece una mala idea ya que tal como lo pone cicklow todos los enlaces que encuentre google nos los apuntara a la pagina principal y de la otra forma nos posicionara una pagina 404.



---------- Post agregado el 20-sep-2013 hora: 18:34 ----------

Tienes mucha razón.

Yo con este código e creado el 404.php y con el código cp de Ubuntu le he ordenado pegarlo en todas mis webs.
La automatización y la simplicidad ahorra mucho tiempo.


---------- Post agregado el 20-sep-2013 hora: 18:37 ----------

Verdad pero aquí estamos hablando de uno o dos errores.
No tengo miles de errores 404.
Y tengo muchos amigos con paginas y plugins que hacen esto mismo.
Redireccionan a el error 404 a la entrada con más visitas.
Así que no hay problema con esto.

El problema es cuando tienes muchos dominios vacíos redireccionados a esa web o muchos enlaces rotos.


 
Gracias, lo acabo de implementar !
Saludos
 
gracias, lo implemente en mi web. 😛irate:
 
Muchas gracias, funciona bien y es sencillo, un saludo.
 
cicklow disculpa que reviva pero esto se puede aplicar en smf?
 
cicklow disculpa que reviva pero esto se puede aplicar en smf?

el code php que postie funciona para todo... no solo wordpress... lo que si no sabria en que parte de smf colocarlo... ya que no lo uso...
 
gracias, instalé un mod que trae esta parte dentro de un php
Insertar CODE, HTML o PHP:
// Возвращаемые коды состояния, в зависимости от ситуации
	if (!empty($modSettings['optimus_404_status']))
	{
		if (!empty($board_info['error']))
		{
			if ($board_info['error'] == 'exist') // Страница не существует?
			{
				header('HTTP/1.1 404 Not Found');
				loadTemplate('Optimus');
				$context['sub_template'] = '404';
				$context['page_title'] = $txt['optimus_404_page_title'];
			}
			
			if ($board_info['error'] == 'access') // Нет доступа?
			{
				header('HTTP/1.1 403 Forbidden');
				loadTemplate('Optimus');
				$context['sub_template'] = '403';
				$context['page_title'] = $txt['optimus_403_page_title'];
			}
		}
	}
igual podría hacerle algo ahí?
el code php que postie funciona para todo... no solo wordpress... lo que si no sabria en que parte de smf colocarlo... ya que no lo uso...
 

en TEORIA jajaja quedaria...
PHP:
if (!empty($modSettings['optimus_404_status']))
	{
		if (!empty($board_info['error']))
		{
			if ($board_info['error'] == 'exist') // Страница не существует?
			{
				header ('HTTP/1.1 404 Not Found');
				header('location: /');
				die();
				loadTemplate('Optimus');
				$context['sub_template'] = '404';
				$context['page_title'] = $txt['optimus_404_page_title'];
			}
			
			if ($board_info['error'] == 'access') // Нет доступа?
			{
				header('HTTP/1.1 403 Forbidden');
				loadTemplate('Optimus');
				$context['sub_template'] = '403';
				$context['page_title'] = $txt['optimus_403_page_title'];
			}
		}
	}
mod eso y fijate si funciona 🙂
 
no 😕 :encouragement:
 
no 😕 :encouragement:

jeje dime si te da error o que... pero sino redirecciona te tendria que salir un error... tiene un die()... eso mata el php (osea no continua nada desde ahi)
 

mmm el problema viene de LiteSpeed, creo que no soporta bien el control de errores 404... al generarle la cabecera 404 lo que hace es inicar litespeed con eso que ves en pantalla... en tu caso abria que ver desde otro modo...
editas el .htaccess de tu sitio y agregas esto (este code lo que hace es que si ocurre un error 404 es abrir ese file: redir.php, y ese file redirecciona al inicio):
Insertar CODE, HTML o PHP:
ErrorDocument 404 /redir.php

y creas un redir.php con esto:
PHP:
<?php
    header ('HTTP/1.1 404 Not Found');
    header('location: /');
    die();
?>
 
muchas gracias, hice como dices y subí el redir.php al directorio principal del foro pero ahora se queda la página en blanco


---------- Post agregado el 27-abr-2014 hora: 11:58 ----------

el error_log me avisa de errores en las líneas 2 y 3 del redir.php