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:
 
Este tips es muy facil de implementar y lo que hacemos es que sino se encuentra algo en nuestro blog, (no con el buscador, sino error 404) redireccionamos al inicio. Solo tenemos que crear un archivo llamado 404.php en la carpeta de nuestro theme con este code:
PHP:
<?php
	header ('HTTP/1.1 404 Not Found');
	header('location: /');
	die();
?>

Saludos y suerte! 🙂

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.
 
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.

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.


---------- 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.
de la misma manera que subimmos el 404.php, tendremos que andar editando el .htaccess para cada sitio... -.-

- - - Actualizado - - -



si es lo mismo, pero en ese caso tenes que andar editando el dominio.tld para cada sitio que subas el 404.php, con el code que uso redirecciona al inicio del blog, sea cual sea el blog.


---------- 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.


Como lo escribí en otro post..


El 404 es 404 no te perjudica en el posicionamiento y lo pueden ver aquí ¿Perjudican los 404 a mi sitio web? - El Blog para Webmasters de Google no intenten hacer nada más que personalizar esa plantilla para intentar bajar la tasa de rebote, es lo más recomendable y saludable para el buscador, que ocurre, una vez que el bot encuentra ese 404 serás informado en WMT, lo que haces es ponerlo como solucionado y solicitar la eliminación de URL, cualquier otra cosa que hagas te generará problemas que pueden dar paso a una penalización.

O sea... si en google tienes indexada una URL con "X" título cuando hacen clic deben abrir ese mismo URL con el mismo titulo "X" si no es así DEBE abrir la página de error 404, caso contrario puede ser interpretado como manipulación, contenido duplicado o error en la estructura del sitio, todos peores que informar lo que realmente pasa "La página no existe".


Una vez más, no recomiendo esa acción.
 
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?
Este tips es muy facil de implementar y lo que hacemos es que sino se encuentra algo en nuestro blog, (no con el buscador, sino error 404) redireccionamos al inicio. Solo tenemos que crear un archivo llamado 404.php en la carpeta de nuestro theme con este code:
PHP:
<?php
	header ('HTTP/1.1 404 Not Found');
	header('location: /');
	die();
?>

Saludos y suerte! 🙂
 
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...
 
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í?

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:
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:

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
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();
?>


---------- 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
 
Atrás
Arriba