<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>onestic &#187; 404</title>
	<atom:link href="http://onestic.com/tag/404/feed/" rel="self" type="application/rss+xml" />
	<link>http://onestic.com</link>
	<description>blog de onestic</description>
	<lastBuildDate>Thu, 02 Feb 2012 09:40:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>WordPress, imagen no encontrada, error 404 y el bucle infinito</title>
		<link>http://onestic.com/wordpress-imagen-no-encontrada-error-404-y-el-bucle-infinito/</link>
		<comments>http://onestic.com/wordpress-imagen-no-encontrada-error-404-y-el-bucle-infinito/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 15:52:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[.htaccess]]></category>
		<category><![CDATA[404]]></category>
		<category><![CDATA[bucle infinito]]></category>
		<category><![CDATA[not found error]]></category>
		<category><![CDATA[rewrite rules]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://onestic.com/?p=758</guid>
		<description><![CDATA[La personalización de las páginas de error en WordPress es cómoda y sencilla. La página de error más socorrida en las plantillas de WordPress es la del error 404 o &#8220;not found&#8221;. Esta página se muestra cuando se ha intentado acceder a una url para la que no existe contenido. Los más astutos aprovechan esta [...]]]></description>
			<content:encoded><![CDATA[La personalización de las <strong>páginas de error en WordPress</strong> es cómoda y sencilla. La página de error más socorrida en las plantillas de WordPress es la del error <strong>404 </strong>o &#8220;not found&#8221;. Esta página se muestra cuando se ha intentado acceder a una url para la que no existe contenido. Los más astutos aprovechan esta página para ofrecer al usuario <strong>enlaces a contenido relacionado</strong> con el que ha intentado encontrar para evitar que el usuario abandone la web. Otros simplemente muestran un texto indicando que no se ha encontrado el contenido buscado, dentro de una página que mantiene el estilo del resto de la web.

Pero pensemos que este error se dará para cualquier url errónea en el navegador, tanto si es una página como si es una imágen o un documento. Ahora pensemos que alguna de las <strong>imágenes </strong>de nuestro <strong>tema </strong>no se referencia bien desde la <strong>plantilla de WordPress</strong> o simplemente no exista en el servidor, dando un error <strong>404</strong>. Siempre que se muestre alguna página de nuestra plantilla que tenga esta imagen, se generará un error <strong>404 </strong>y se renderizará en el servidor la página de <strong>error 404 de WordPress</strong>. Esto hace que <strong>aumente nuestra carga de servidor</strong> innecesariamente y también <strong>el tiempo de carga de la página</strong>, ya que en lugar de mandarse un mensaje escueto desde el servidor con el error <strong>404 </strong>para la petición de esta imagen, se está mandando una página entera con todos los estilos. Esto se puede ver más claro con firebug:

<img class="alignleft size-large wp-image-760" title="captura-404" src="http://onestic.com/wp-content/uploads/2010/01/captura-4041-611x198.jpg" alt="" width="611" height="198" />

Sólo<strong> por minimizar la carga del servidor</strong> ya merece la pena hacer algo a este respecto, pero ahora imaginemos otro escenario en el que esta imagen que falta está referenciada en el footer, el sidebar o el header, y siempre que pidamos una página de wordpress se hará una petición a esta imagen inexistente (incluida la de 404). Entonces nos podemos encontrar con un <strong>bucle infinito</strong>: Se accede a una página: Se pide la imagen-> 404: Se vuelve a pedir la imagen -> 404: Se vuelve a pedir la imagen&#8230; Y así hasta que se sature el servidor web si ninguna opción de seguridad lo evita antes.

Para <strong>solucionar este problema</strong> tan sólo debemos <strong>añadir un par de líneas a nuestro fichero .htaccess</strong> Redordad que las directrices del .htaccess se procesan en orden, por lo que conviene ponerla antes de las demás <strong>Rewrite Rules</strong>. Con estas líneas indicaremos que si se encuentra ante una <strong>petición http</strong> a una imagen que no exista, devuelva en su lugar cualquier otro elemento que nosotros le indiquemos y que sí esté disponible. Podemos indicar más tipos de fichero si lo consideramos oportuno:

[CODE]RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} \.(gif|jpg|jpeg|png|bmp)$
RewriteRule .* wp-content/themes/mi_tema/404.html [L][/CODE]

Entre las diferentes opciones que tenemos a nuestra disposición, podemos <strong>devolver una imagen de 1&#215;1 píxeles</strong>, aumentando la velocidad de carga de la página, o podemos <strong>incluir una imagen por defecto</strong> con el logo de la página (con cuidado, porque esta opción puede descuadrarnos el tema). También podemos devolver una <strong>página de error más básica </strong>que la de la plantilla, y<strong> en html estático</strong>.

A pesar de que nos hemos puesto en el peor caso, esto no es lo habitual. Este tipo de errores de imágenes no encontradas se observa con más frecuencia en la redacción de posts que en la implementación del tema. Pero una migración de servidor, una limpieza de los ficheros subidos a WordPress o un cambio de directorio pueden ocasionar que estos errores aparezcan de la noche a la mañana.]]></content:encoded>
			<wfw:commentRss>http://onestic.com/wordpress-imagen-no-encontrada-error-404-y-el-bucle-infinito/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

