Aprende todo lo que puedes hacer con htaccess

Vamos a hablar de un archivo muy importante con el que puedes hacer más cosas de las que imaginas, el archivo .htaccess de nuestra web.

¿Qué es el .htaccess?

El archivo .htaccess es un fichero especial que sirve para configurar de forma individual algunas directivas de nuestra web sin tener que editar o modificar el archivo de configuración de nuestro Apache en el servidor.

Esa sería la explicación formal mas o menos. Ahora vamos a ver muchas de las cosas que se pueden hacer con el archivo .htacces, y destacaremos en especial algunas que nos ayudarán tanto con la mejora de optimización como para la seguridad de nuestro sitio.

Cosas que hacer con .htaccess

Antes de nada decir que este archivo, al ser «especial», tiene también algunas particularidades como el «.» delante. Pero, ¿Qué significa es punto delante del archivo?

El htaccess, al igual que por ejemplo, el archivo .hosts de nuestro Windows, tienen un punto delante por que son «archivos ocultos» . (Otro día hablaremos de la función del hosts en Windows).

Por tanto, y para acceder a el, debes navegar por el árbol de carpetas desde tu propio hosting hasta la raíz del dominio, o bien por ftp para localizarlo.

¿Qué utilidades tiene el archivo htaccess?

Tiene numerosas utilidades. Este post iremos ampliándolo con códigos para el htaccess. De momento, vamos a ver a grosso modo una lista y también algunos de éstos códigos que podréis añadir al vuestro.

¿Qué cosas hacer con htaccess?

  • Este archivo te permite tener el control de acceso al sitio, evitando que puedas acceder a determinadas carpetas o archivos, protegiéndo así tu web.
  • Una de las características principales que más uso tiene es redirigir la web, bien toda o bien escribir reglas de redireccionamiento 301 a otras partes de la misma.
  • También podremos realizar las redirecciones «web amigables» para el SEO (Si usas WordPress, verás que los plugins tipo Yoast ya lo hacen reescribiendo este archivo.
  • Otra redirección muy usada es la redirección a conexión segura HTTPS.
  • Con este archivo se puede evitar el hotlinking (que alguien pueda coger imágenes de nuestra web)
  • Forzar el cacheo de nuestra web, aunque al igual que pasa con Yoast, lo suyo no es escribirlo «a pelo» en este archivo, si no dejar que el propio plugin una vez configurado, seal esl que escriba lo correspondiente en el archivo.
  • Puedes mejorar la compatibilidad de los caracteres.
  • Puedes optimizar la velocidad de carga de las páginas.
  • Se puede también evitar SPAM* (evitando el acceso a bots)

Códigos de configuración de .htaccess

Aquí tienes algunos de los códigos usados. Si lo deseas, copia y pega en tu propio htaccess el que creas conveniente.

Reducir el tiempo de carga de las páginas con htaccess


Con este código reduciremos el tiempo de carga de nuestra web, ya que vamos a forzar el que se compriman todo el codigo CSS, JavaScript, XML y texto antes de ser mostrado en el navegador.

Nota: Si usas WordPress y con él algún plugin de tipo caché para optimizar la carga, no lo pongas en tu .htaccess.

<Files *.css>

SetOutputFilter DEFLATE

</Files>

<Files *.js>

SetOutputFilter DEFLATE

</Files>

AddOutputFilterByType DEFLATE text/plain

AddOutputFilterByType DEFLATE text/html

AddOutputFilterByType DEFLATE text/xml

AddOutputFilterByType DEFLATE text/css

AddOutputFilterByType DEFLATE application/javascript

AddOutputFilterByType DEFLATE application/x-javascript

AddOutputFilterByType DEFLATE application/xml

AddOutputFilterByType DEFLATE application/xhtml+xml

AddOutputFilterByType DEFLATE application/rss+xml

Redirecciones 301 sin penalización

Si deseas redirigir un dominio viejo a uno nuevo sin que seas penalizado por Google, debes de añadir este código que confirma que la redirección del citado dominio es «permanente». (301)

Redirect 301 /d/file.html http://www.nombrededominio.com/r/file.html

Caché para visitantes que vuelven al sitio

Con el siguiente código vamos a conseguir que cuando un usuario nos vuelva a visitar, nuestra web sólo tenga que cargar los elementos nuevos o modificados. Este código es solo a modo informativo, para que veas todo lo que se puede hacer, pero como hemos dicho antes, si usas WordPress quizá deberías de usar plugins de caché que reescriban todo una vez configurado.

– FileETag MTime Size

– ExpiresActive on

– ExpiresDefault «access plus 86400 seconds»

Evitar el hotlinking con htaccess

Con el siguiente código vamos a evitar que nos puedan coger imágenes de nuestra web. Sólo hay que cambiar el apartado «nuestraweb» por el dominio

– RewriteEngine On

– RewriteCond %{HTTP_REFERER} !^http://(.+\.)?nuestraweb\.com/ [NC]

– RewriteCond %{HTTP_REFERER} !^$

– RewriteRule .*\.(jpg|gif|bmp|png)$ http://nuestraweb.com/no_se_permite_hotlinking.jpg [L]    // con esto mostraremos una imagen o aviso diciendo que la imagen es nuestra por ejemplo.

URLS Amigables para SEO

Si quieres hacer tus urls «amigables» copia el siguiente código en tu .htaccess para modificar el mod_rewrite del apache de tu hosting. Al usar WordPress y guardar directamente los «enlaces permanentes» te creará esta regla.

– <IfModule mod_rewrite.c>

RewriteEngine on

RewriteBase /

RewriteCond %{SCRIPT_FILENAME} !-d

RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule ^(.*)$ $1.php       //aquí podemos cambiar el .php por la extensión que tengan nuestros archivos.

</IfModule>

Proteger el wp-config de nuestro WordPress

En este código de seguridad que podremos añadir a nuestro WordPress, protegeremos el archivo wp-config.php, uno de los archivos más importantes de todos que contiene toda la configuración básica. Con estas líneas lo protegeremos.

<Files wp-config.php>

order allow,deny

deny from all

</Files>

Evitar el SPAM a través de nuestro htaccess

Muchos de los que utilizan WordPress, usan plugins como Akismet para evitar SPAM al margen de las reglas que aporte el propio hosting. (Ver planes de Raiola Networks o de Webempresa). Con todo aquí tienes las siguientes lineas para añadirlas a nuestro .htaccess y evitar a todos aquellos bots que no vengan de nuestra propia página puedan acceder al archivo wp-comments-post.php por ejemplo:

RewriteEngine On

RewriteCond %{REQUEST_METHOD} POST

RewriteCond %{REQUEST_URI} .wp-comments-post.php*

RewriteCond %{HTTP_REFERER} !.*tublog.com.* [OR]

RewriteCond %{HTTP_USER_AGENT} ^$

RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

Bueno, como veréis hay muuuchas cosas que hacer con htaccess. Aquí sólo hay reflejadas algunas de las que se suelen utilizar sobre todo si trabajas con wordpress.

Espero que os sirvan de ayuda!

¿Necesitas ayuda?