Crear sencillo y funcional .htaccess para tu web para servidor web apache

Crear sencillo y funcional .htaccess para tu web


htaccess nos permite configurar aspectos a cerca de la funcionalidad de nuestra web, como debe interactuar nuestra web con nuestro hosting, en materia de rendimiento y seguridad.

Vamos a ponernos el mono de trabajo.

– Activamos modulo rewrite:

RewriteEngine On

– En primer lugar vamos a configurar la compresión de nuestra web, en muchos sitos recomiendan hacer esto en este archivo(.htaccess), yo prefiero hacerlo con php:

//gzip
ob_start('ob_gzhandler');
ob_flush();

Comprobar compresión GZIP

gzip htacess

– Vamos a configurar las redirecciones errores 404 y 403:

ErrorDocument 404 "ruta pagina 404"
ErrorDocument 403 "ruta pagina 403"

No creo que haga falta como explicar como hacerlo con otros errores como puede ser 500, ya que seria de forma similar.

– Configurar acceso a los directorios de nuestra web:

#nadie tiene acceso a los directorios de nuestra web.
deny from all
#nadie puede listar contenido de nuestra web
Options All -Indexes

– Ahora configuraremos la cache de nuestro servidor o en otras palabras cuanto tiempo almacenara el navegador: imágenes, PDF, HTML, PHP, JS, etc …, antes de descargarlos nuevamente de nuestro servidor:

# Cache

ExpiresActive On
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType text/css "access plus 1 month"
ExpiresByType application/pdf "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresDefault "access plus 2 days"

También podemos hacer con php, en este caso no cachear nada:

//cache
header('Cache-Control: no-cache, no-store, must-revalidate'); //pa HTTP 1.1
header('Pragma: no-cache'); //pa HTTP 1.0
header('Expires: 0'); //pa proxis

Comprobar cache

cache htaccess

– Ahora vamos a proceder como configurar para que el servidor siempre utilice url sin www.

#redirección:
RewriteCond %{HTTP_HOST} !^nuestraweb\.com$ [NC]
RewriteRule ^(.*)$ http://nuestraweb.com/$1 [R=301,L]

También podemos configurar sobre como evitar que otros dominios utilicen las imágenes alojadas en nuestro servidor:

# HOTLINKING
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?nuestraweb.com/.*$      [NC]
RewriteRule .*\.(.*)$ http://google.es [R,NC]

Comprobar protección hotlinking

*Cualquier cambio puede dejar inoperativa tu web, por lo que no esta de más comprobar el correcto funcionamiento de nuestra web tras realizar cualquier modificación en este archivo.