Image
Top
Navigation
 

Configuración del .htaccess de apache

apache_htaccessCuando hablamos del fichero de configuración .htaccess, la mayoría de las veces lo asociamos a temas de seguridad:

  • Restricción de acceso.
  • Autorización.
  • Autenticación

Pero este maravilloso fichero además nos permite modificar muchas otras directivas de configuración para cada directorio sin necesidad de tener que tocar el apache.conf con lo que eso conlleva (configuración global y reinicio del servicio para los cambios).

En este post os vamos a mostrar las diferentes utilidades que nos puede ofrecer este fichero de configuración, veamos unos ejemplos:

 

Aumentar la velocidad de nuestra web.

Una de las funciones más importantes que nos puede ofrecer es la que nos permite utilizar la caché para aumentar considerablemente el rendimiento de carga de nuestra web.

# 1 Año
<FilesMatch "\.(ico|pdf|flv)$">
Header set Cache-Control "max-age=29030400, public"

# 1 Semana
<FilesMatch "\.(jpg|jpeg|png|gif|swf)$">
Header set Cache-Control "max-age=604800, public"

# 1 Minuto
<FilesMatch "\.(html|htm|php)$">
Header set Cache-Control "max-age=60, private, proxy-revalidate"
Evitar el hot-linking en tu web

El hot-linking o hotlink es una técnica que consiste en aprovecharse de las imágenes almacenadas en tu web. De esta forma pueden enlazar las imágenes de tu web y hacer que sea tu servidor el que corra con la carga de mostrarlas. Para evitar podemos usar este código:

RewriteEngine On
#Sustituimos ?miweb\.com/ con la url de nuestra página
RewriteCond %{HTTP_REFERER} !^http://(.+\.)?miweb\.com/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Sustituimos/img/noHotLink.jpg con la ruta de la imagen que queramos prohibir
RewriteRule .*\.(jpe?g|gif|bmp|png)$ /img/noHotLink.jpg [L]
Control de acceso a carpetas

Gracias a esta funcionalidad, podremos disponer de un control absoluto sobre el acceso a nuestros ficheros, un ejemplo:

#Denegar el acceso a cualquier carpeta deny from all
#permitir el acceso a una IP específica
deny from all
allow from 190.18.19.20

#bloquear el acceso a un archivo en concreto
Order allow,deny
Deny from all

#Acceso rangos de IPs
allow from 192.168.0.0/50
Bloquear direcciones IP con una lista negra

Puede evitar las peticiones de IPs con intenciones turbias incluyéndolas en una lista negra. Este es el código:

order allow, deny
allow from all
deny from 111.111.111.1
deny from 000.000.000.0
Páginas de errores personalizados

Esta función es muy útil para evitar que sean los servidores los que manejen los errores más comunes  404 , 403, etc.

De esta forma puedes presentarlos tu mismo con una página que de confianza al usuario.

ErrorDocument 403 /error/403.html
ErrorDocument 404 /error/404.html
ErrorDocument 500 /error/500.html
Ahorro de ancho de banda.

Para ahorra el ancho de banda también podemos habilitar la compresión de datos con este sencillo código:

php_value zlib.output_compression 16386

 

Bloquear robots

Para evitar que spiders innecesarios consuman recursos de tu servidor, podemos usar el siguiente código:

RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule .* - [F]
Evitar mostrar las www

Para evitar que tu página web en vez de http://www.tuweb.com tenga el formato http://tuweb.com incluiremos el siguiente código.

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^www\.tuWeb\.com[nc]
RewriteRule ^(.*)$ http://tuWeb.com/$1 [r=301,nc]

Estos son solo unos ejemplos de las posibilidades que ofrece el fichero de configuración .htaccess. Por último un consejo, intentar dejar el fichero lo más liviano posible ya que en cada petición que se realiza a vuestra web, es procesado por el servidor.

Un saludo!

Déjanos tu comentario

Autor

3VASES

Tags