Portada cPanel Los 6 Mejores Trucos para .htaccess
Si tienes un sitio Web es muy probable que hayas oído hablar del .htaccess.
El archivo .htaccess viene de hypertext access y está vinculado a los servidores Web Apache, que son los servidores Web más usados en el mundo.
Con .htaccess se pueden configurar varios aspectos del servidor sin la necesidad de tener que acceder al archivo de configuración del servidor Apache.
El archivo .htaccess se guarda en modo ASCCI así que puedes editarlo con cualquier editor de texto, no necesitas ningún programa adicional, aunque a la hora de guardar el archivo debes de tener en cuenta que no tiene extensión así que si tu programa habitual añade el típico .txt al final debes eliminarla.
Los archivos .htaccess se suelen usar para añadir restricciones de seguridad a directorios particulares. También pueden reescribir largas URL para que sean más amigables o bloquear ip, bots, etc…
Usando el archivo .htaccess podemos controlar la seguridad y el acceso a nuestros sitios o aplicaciones Web de una manera rápida y relativamente sencilla.
Añadiendo unos sencillos códigos al archivo .htaccess de tu servidor puedes conseguir varias cosas. Aquí te vamos a indicar cuales son los códigos más usados y para que sirve cada uno.
Este truco es muy común, si quieres que tu Web sea visible con las 3 www aunque el usuario la escriba en la barra de direcciones del navegador sin ellas sólo tendrás que añadir este código en el .htaccess para conseguirlo.
RewriteEngine On RewriteCond %{HTTP_HOST} ^tusitio.com RewriteRule (.*) http://www.tusitio.com/$1 [R=301,L]
Si te interesa hacerlo a la inversa, es decir que el dominio se muestre sin las www:
RewriteEngine On RewriteCond %{HTTP_HOST} ^www.tusitio.com [NC] RewriteRule ^(.*)$ http://tusitio.com/$1 [L,R=301]
Si quieres que sea imposible que un usuario liste uno de tus directorios debes añadir este sencillo código:
Options All -Indexes
Esto es muy útil si tienes un directorio con imágenes, PDF, ePub, etc… ya que así impedimos que con un simple http://www.tusitio.com/imagenes/ tengan acceso a todas las imágenes que hayan en dicho directorio.
Si no queremos que por ningún motivo alguien pueda tener acceso a algunos de nuestros archivos, los archivos de configuración por ejemplo, el código que debemos añadir para hacerlo es:
<files archivo-que-quieras-proteger.php> order allow,deny deny from all </files>
Si lo que quieres es proteger todo un directorio hay varias formas de hacerlo pero una muy común es hacer un redireccionamiento 301 al directorio, así todo el mundo que intente acceder vía Web a ese directorio acabará en la URL que tu decidas, por ejemplo el index de tu sitio.
Redirect 301 /directorio/ http://www.tusitio.com/ Redirect 301 /directorio/directorio/index.html http://www.tusitio.com/
Pues sí, nuestro archivo .htaccess es capaz de protegerse a si mismo para que nadie pueda tener acceso a el desde su navegador.
<Files .htaccess> Order allow,deny Deny from all </Files>
Un caso muy común desde que se empezaron a añadir imágenes en las páginas Web y tiene el nombre de Hotlink o Hot Linking
Eso significa que si tienes una imagen subida en tu Web alguien puede usar esa misma imagen para ponerla en otro sitio Web.
El problema es que tu no obtienes ningún beneficio por eso y te perjudica porque está usando tu ancho de banda. Hemos tenido casos en los que las imágenes acababan en foros de mucho tráfico y el usuario se quedaba sin ancho de banda en un día.
Por suerte la solución es sencilla, sólo hay añadir el siguiente código a nuestros querido archivo .htaccess:
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www.)?tusitio.com/.*$ [NC] RewriteRule .(jpg|jpeg|gif|png|bmp)$ - [F]
Hay veces que nuestro sitio puede verse perjudicado por alguna situación desagradable como el spam, que alguien esté intentando hacer un ataque de fuerza bruta para conseguir nuestra contraseña, que estén intentando tumbar nuestra Web, etc…
Eso podemos averiguarlo si una misma IP se está conectando repetidamente a nuestro sitio y la forma de bloquear la IP es la siguiente:
<Limit GET HEAD POST> order allow,deny deny from 000.000.000.000 deny from 000.000.000.000 deny from 000.000.000.000 allow from all </limit>
En este ejemplo los 000.000.000.000 deberías substituirlos por las IP que quieras bloquear. En este caso hay 3 IP pero puedes añadir o quitar las que necesites.
En ocasiones vale la pena bloquear un sitio entero y la forma de hacerlo es la siguiente:
RewriteEngine on RewriteCond %{HTTP_REFERER} sitio-que-quieras-bloquear.com [NC] RewriteRule .* - [F]