¿Estás familiarizado con el archivo .htaccess de WordPress? El fichero .htaccess (fichero de acceso a hipertexto) es un archivo de configuración del nivel de directorio que permite la gestión descentralizada de la configuración del servidor web. Un archivo .htaccess es siempre agregado en el directorio raíz y con él se pueden modificar muchos parámetros de configuración de WordPress.

Con el archivo .htaccess puedes editar la configuración del servidor (server’s global configuration), eltipo de contenido (content type) y el conjunto de caracteres (character set). Con todas estas propiedades el archivo .htaccess se convierte en clave que garantizar y mejorar la funcionalidad de cualquier página web, blog o tienda online que tenga una instalación WordPress.
La importancia del archivo .htaccess en el posicionamiento web
El archivo .htaccess es vital para hacer un buen trabajo de posicionamiento en motores de búsqueda. Como consultor SEO, a la hora de posicionar una página o blog en los motores de búsqueda como Google, lo uso para:
- Crear redirecciones: Por ejemplo para un trabajo de cambio de dominio, donde habría que mantener las visitas del anterior dominio.
- Mejora de la velocidad de carga habilitando la compresión con .htaccess: Es un apartado que muy pocas páginas web usan y que da muy buenos resultados.
- Reescritura de enlaces: Gracias al archivo .htaccess puedes reescribir cualquier URL.
- Soluciones al contenido duplicado: Por ejemplo capando los accesos a ciertos contenidos para que ya no estén duplicados.
Cuando instalas WordPress se crea un fichero .htaccess que WordPress usa por defecto, pero ese fichero puede ser mejorado, utilizando consejos como los que te ofrezco a continuación. Ten cuidado al implementarlos, y siempre guarda una copia de seguridad antes de cambiar nada, por si tienes que volver hacia atrás.
Trucos para configurar el archivo .htaccess de WordPress
A continuación vamos con unos cuantos trucos para saber cómo configurar y optimizar .htaccess para evitar hackeos, que dificultarán y evitarán en gran medida la piratería en tu sitio web de WordPress. Algunos de estos consejos son para:
- Bloquear direcciones IP específicas.
- Redirigir las visitas a la página de mantenimiento cuando se está rediseñando una página web o blog en particular.
- Restringir direcciones IP para que nadie pueda acceder al panel de administración de tu WordPress.
- Muchos otros trucos o consejos para configurar y optimizar el archivo .htaccess en WordPress.
Antes de seguir, tengo que dejar claro que en este artículo muestro los consejos más importantes para configurar .htaccess para evitar hackeos, pero si lo que quieres es profundizar en el tema y configurar correctamente tu fichero .htaccess echa un ojo a la guía de referencia de .htaccess (eso sí, está en inglés).
#1 Bloquear IPs de usuarios o bots indeseados
Apache puede ser utilizado para bloquear usuarios o bots indeseados a nuestra página web o blog. Este código permite visitar la página web o blog a cualquier persona, excepto a quien tenga las siguientes direcciones IP (cambiar las IPs con las IPs que quieras bloquear):
- <limit GET POST PUT>
- order allow,deny
- allow from all
- deny from 123.456.789
- deny from 93.121.788
- deny from 223.956.789
- deny from 128.456.780
- </LIMIT>
#2 Redireccionar el día y el nombre de los enlaces permanentes a /% postname%/
Lo primero que debes de hacer es acceder a tu panel de administración de WordPress, ir a «Ajustes > Enlaces permanentes (permalinks)» y seleccionar «Personalizar». Rellena el campo con «/% postname%/». Ahora tenemos que redirigir todos los backlinks (enlaces entrantes) usando la antigua estructura de enlaces permanentes (permalinks) a la nueva estructura de enlaces permanentes. Para ello, tendrás que editar el archivo .htaccess. e insertar las siguiente líneas de código:
- RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ https://www.dominioweb.com//$4
#3 Redireccionar las visitas a una página de mantenimiento
- RewriteEngine on
- RewriteCond %{REQUEST_URI} !/maintenance.html$
- RewriteCond %{REMOTE_ADDR} !^123.123.123.123
- RewriteRule $ /maintenance.html [R=302,L]
#4 Redireccionar hacia www o sin www con .htaccess
- RewriteEngine On
- RewriteBase /
- RewriteCond %{HTTP_HOST} ^yourblogname.com [NC] RewriteRule ^(.*)$ http://www.yourblogname.com/$1 [L,R=301]
#5 Configurar URLs canonical con .htaccess
- # Establece la URL canonical
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^dominioweb.com$ [NC] RewriteRule ^(.*)$ http://www.dominioweb.com/$1 [R=301,L]
#6 Redireccionar tu feed hacia FeedBurner
Este código redirecciona el feed de tu instalación WordPress (http://www.dominioweb.com/feed) a cualquier otro sitio (por ejemplo a Feedburner).
- # Redirecciona el feed de WordPress a Feedburner
- <IfModule mod_rewrite.c>
- RewriteEngine on
- RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC] RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC] RewriteRule ^feed/?([_0-9a-z-]+)?/?$ [R=302,NC,L]
#7 Redireccionar tu feed de comentarios hacia FeedBurner
- # Redirecciona el feed de comentarios de WordPress a Feedburner
- <IfModule mod_rewrite.c>
- RewriteEngine on
- RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC] RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC] RewriteRule ^comments/feed/?([_0-9a-z-]+)?/?$ [R=302,NC,L]
#8 Redirecciones 301 para SEO con .htaccess
Utiliza el siguiente código para redirigir a una página específica sin mostrar la antigua página de error.
- # <a class=»_hootified» a=»» href=»#» #seo»=»» onclick=»javascript:var e = document.createEvent(«CustomEvent»); e.initCustomEvent(«hootletEvent», true, true, {type: «hash», value: «#SEO»}); document.body.dispatchEvent(e); return false;»>#SEO Friendly 301 Redirects
- Redirect 301 /abc/file.html http://www.dominioweb.com/def/file.html
#9 Forzar la cache desde .htaccess
Este código para el .htaccess no ayudará en la carga inicial de la página web o blog, pero si lo hará significativamente en posteriores cargas enviando estados 304 cuando los elementos solicitados no se hayan modificado.
- # FileETag MTime Size
- ExpiresActive on
- ExpiresDefault «access plus x seconds»
#10 Permitir únicamente tu IP para acceder al panel de administración de WordPress
Reemplaza la IP de la línea de código «with allow from xx.xx.xx.xx» con la tuya para que sólo tu IP pueda acceder al panel de administración wp-admin de wordpress.
- AuthUserFile /dev/null
- AuthGroupFile /dev/null
- AuthName «Wordpress Admin Access Control»
- AuthType Basic
- <LIMIT GET>
- order deny,allow
- deny from all
- allow from xx.xx.xx.xx
- </LIMIT>
#11 Bloquear comentarios a peticiones no referenciadas (Spam)
Simple truco para evitar que los spammers publiquen o ataquen tu página web o blog.
- RewriteEngine On
- RewriteCond %{REQUEST_METHOD} POST
- RewriteCond %{REQUEST_URI} .wp-comments-post.php*
- RewriteCond %{HTTP_REFERER} !.dominioweb.com. [OR] RewriteCond %{HTTP_USER_AGENT} ^$
- RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
#12 Bloquear una IP spam
Para bloquear ciertas direcciones IP para evitar que accedan a tu página web o blog, añade las siguientes líneas de código en tu archivo .htaccess y sustituye la dirección IP del ejemplo con la que quieras bloquear.
- ## Banear IPs
- <Limit GET POST>
- order allow,deny
- deny from 200.49.176.139
- allow from all
- </Limit>
#13 Denegar acceso al fichero de configuración wp-config de WordPress
El archivo wp-config.php de WordPress incluye toda la información importante, como el nombre de base de datos. Es vital tenerlo bien protegido.
- # Proteger archivo wp-config.php
- <files wp-config.php>
- order allow,deny
- deny from all
- </files>
#14 Limitar el peso de los archivos subidos a 20mb
Para limitar el tamaño de los archivo que subes en wordpress hasta 20MB, utiliza el siguiente código:
- # Limitar la subida de archivos a a 10 MB
- LimitRequestBody 10240000
#15 Personalizar la página de error 404 con .htaccess
- # Páginas de error personalizadas
- ErrorDocument 401 /err/401.php
- ErrorDocument 403 /err/403.php
- ErrorDocument 404 /err/404.php
- ErrorDocument 500 /err/500.php
#16 Añadir barra (/) al final de las URLs
Para añadir una barra al final de tus enlaces (URLs), inserta el siguiente código en tu archivo .htaccess:
- <a class=»_hootified» a=»» href=»#» #trailing»=»» onclick=»javascript:var e = document.createEvent(«CustomEvent»); e.initCustomEvent(«hootletEvent», true, true, {type: «hash», value: «#trailing»}); document.body.dispatchEvent(e); return false;»>#trailing slash enforcement
- RewriteBase /
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_URI} !#
- RewriteCond %{REQUEST_URI} !(.)/$ RewriteRule ^(.)$ http://dominioweb.com/$1/ [L,R=301]
#17 Proteger directorios con contraseñas
Una forma sencilla de proteger mediante contraseña los directorios de tus blogs.
- AuthType Basic
- AuthName «restricted area»
- AuthUserFile /usr/local/var/www/html/.htpasses
- require valid-user
#18 Resolver errores en los enlaces (URLs) con .htaccess
Este truco puede ser útil para auto-corregir errores ortográficos de tus enlaces (URLs).
- <IfModule mod_speling.c>
- CheckSpelling On
- </IfModule>
#19 Asegurar los plugins de WordPress
Los plugins de wordpress suelen tener «puertas traseras» y suelen ser sitios por los que los hackers pueden entrar en tu página web o blog. Para evitar que otras personas tengan acceso directo a los archivos de tus plugins utiliza el siguiente código:
- <Files ~ «.(js|css)$»>
- order allow,deny
- allow from all
- </Files>
Conclusión: Utiliza el .htaccess para administrar mejor tu WordPress
¿Qué te ha parecido esta guía para configurar el archivo .htaccess de WordPress? ¿Conocías todos los trucos? ¿Ya utilizas alguno y quieres contar tu experiencia? ¿Crees que me he dejado alguno? ¿Te has quedado con alguna duda o pregunta? Entonces te pido que dejes un comentario. Da igual que sea o una duda o un simple gracias, pero me alegraré mucho de leerlo y responderlo.