¿Qué es .htaccess?

Introducción

El archivo .htaccess es un simple archivo de texto que Apache usa para tener algunas reglas sobre los directorios y los archivos. Resumiendo, este contiene determinadas directivas que obligan al servidor de web a actuar según los usuarios, así como a definir otras reglas para los documentos.

Las características más utilizadas por los desarrolladores de sitios web, son aquellas que ayudan a la optimizacion de las url, control de trafico en una web, bloqueo de usuarios, y algunas otras que ya iremos viendo paso a paso.

Aunque también existen muchisimas funcionalidad que pueden aplicarse, pero desde ya para usuarios algo más avanzados. Si necesitan más información deberás ingresar directamente al tutorial de Apache y extraer los datos de la fuente original.

Primera regla

El uso que la mayoría de los webmasters le da al .htaccess, es la posibilidad de optimizar el nombre de sus URLs, ocultando tediosas variables, que a Google no le gustan mucho.

El ejemplo mas solicitado de este problema, es el que presentan los portales prefabricados, como PHP-Nuke, Xoops, y muchos otros, donde cada sección de la página, se accede a traves de una larga fila de variables, que resultan imposible de memorizar, tanto para nosotros, como para la mayoría de los buscadores.

Si quisieramos ocultar algunas variables, tendríamos que hacer algo como esto:

RewriteEngine on
RewriteRule seccion/([_0-9a-z-]+)/([_0-9a-z-]+)/ pagina.php?var1=$1&var2=$2

Con este pequeño ejemplo, le estamos diciendo a nuestro servidor, que cuando alguien solicite la url: seccion/recomendanos/10, tendrá que abrir en realidad: pagina.php?var1=recomendanos&var2=10

El formato [_0-9a-z-] significa que puede esperar letras, números y guiones (bajo y medio), y el + a costado de la regla, indica que cada valor dado, debe tener como mínimo, un carácter de largo.

También es posible reglas de la siguiente manera:

  • [0-9]: solamente números.
  • [0-9]{4}: números de 4 cifras.
  • ([0-9]{1,2}: números de 1 y 2 cifras.
  • (.*): cualquier expresión.
  • [a-z]: solamente letras.
  • [a-z]{1,10}: palabras entre 1 y 10 caracteres.

Si por alguna razón, cuando subes tu htaccess a tu sitio web, este presenta un Error 500, es porque alguna de las reglas que has escrito, presenta errores de sintaxis y hasta que no lo modifiques, no podrás acceder a tu sitio correctamente.

Personalización de Errores

La forma de personalizar los que ofrecen los exploradores es bastante fácil. La sintaxis es bastante básica, y acá va un ejemplo para personalizar el bendito Error 404 – “Pagina no Encontrada”.

Redirección Local

RewriteEngine On
ErrorDocument 404: error404.php

Redirección Externa

RewriteEngine On
ErrorDocument 404: http://www.otrapagina.com/arhivo.php

En este archivo error404.php o archivo.php (le podes poner el nombre que quieras) estará el contenido que vos quieras que se muestre cuando alguien llegue a ese error en tu página.

Esta es quizás la regla más utilizada por los desarrolladores de sitios webs, pero se pueden personalizar todos los errores, y creanme que son muchos.
También se puede optar por mostrar un mensaje de error emergente, si cambiamos el dirección de nuestro archivo, por el mensaje entre comillas (”mensaje”).

RewriteEngine On
ErrorDocument 404 “La pagina solicitada no existe”

Siempre que estemos personalizando errores de la pagina tiene que ir la directiva ErrorDocument seguida del código del error.

Hot Link

El hot linking, es lo que se produce cuando desde nuestra pagina, linkeamos imagenes, videos, etc, que están publicados sobre otra página, o lo que es peor, sobre un servidor a cargo de otra persona, lo que equivale a un hurto de su trasferencia mensual, que se traduce como un gasto muy grande en el servicio de hosting.

Podemos impedir que estos usuarios tengan links (generalmente img) sobre sus paginas, con nuestros archivo, si colocamos esta pequeña regla:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?vbracco.com.ar(/)?.*$ [NC]
RewriteRule .*.(gif|jpg|jpeg|bmp)$ http://www.vbracco.com.ar [R,NC]

Con esto, le decimos al servidor, que la única forma de mostrar las imagenes de nuestro sitio, es que el HTTP REFERER sea nuestra propia página. De cualquier otra forma, se mostrará la molesta X sobre la imagen, como si no existiera.

Podríamos incluso, en vez de mostrar la X de error, disponer una imagen en blanco, o lo que nosotros quisieramos para mostrar cada vez que se linkee una imagen desde otro sitio.

RewriteEngine On
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?vbracco.com.ar(/)?.*$ [NC]
RewriteRule .*.(gif|jpg|jpeg|bmp) $ images/nohotlink.jpg [L]

También, podemos descartar o agregar extensiones de archivos que no quieres que te linkeen, como archivos de video o de sonido, pero siempre con la barra separadora | .

Lo que no podemos hacer, es redireccionar una imagen en hot link, a una pagina web, ya que daría error de inconsistencia.

Deja un comentario