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.
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!