Comprender y configurar el archivo .htaccess en WordPress
Spanish (Español) translation by Ana Paulina Figueroa (you can also view the original English article)
Si eres propietario de un sitio web, probablemente ya sepas un poco sobre los archivos .htaccess, o al menos sabes de su existencia. En este tutorial te ayudaremos a comprender el propósito de los archivos .htaccess. También discutiremos cómo puedes acceder al archivo .htaccess y configurarlo para tu sitio web de WordPress.
¿Qué hace el archivo .htaccess?
El servidor web Apache utiliza el archivo .htaccess para determinar de qué manera debe servir los archivos a los visitantes. Puedes usar este archivo para proporcionar diferentes opciones de configuración para directorios distintos. Las opciones que tú establezcas en un archivo .htaccess dentro de un directorio en particular se aplicarán a todos los archivos y subdirectorios dentro de ese directorio.
Puedes usar un archivo .htaccess para hacer muchas cosas, como reescribir las URL, redirigir a los usuarios de una versión no segura de tus páginas web a una versión segura, o controlar el almacenamiento en caché.
¿Dónde está mi archivo .htaccess de WordPress?
Por lo general, los nombres de los archivos contienen el nombre base real y una extensión, como contactos.pdf y log.txt. Sin embargo, el archivo .htaccess no tiene extensión. Comienza con un punto porque esto lo oculta en los sistemas operativos Unix y Linux. El archivo se encuentra en el directorio raíz de tu instalación de WordPress.
Sin embargo, es posible que no lo veas al principio, ya que tu cliente FTP podría estar ocultándolo. Sin no ves el archivo .htaccess en tu carpeta raíz de WordPress, busca una opción en tu cliente FTP para mostrar los archivos ocultos.



Después de eso, deberías ver el archivo como en la imagen de arriba. El nombre del archivo probablemente seguirá siendo de color más claro en comparación con el de los archivos normales. Si aún no ves un archivo .htaccess, consulta más adelante algunos de los consejos para la resolución de problemas.
¿Cómo es que WordPress utiliza los archivos .htaccess?
El propio núcleo de WordPress utiliza los archivos .htaccess para redirigir las URL con el fin de hacerlas legibles, además de compatibles con SEO y para facilitar su uso. El archivo se localiza en el directorio raíz de tu sitio web de WordPress. Esta es la ubicación en donde instalaste WordPress por primera vez. También contendrá otro archivo llamado index.php dentro del mismo directorio en el que se encuentra el archivo .htaccess.
Si inicias sesión en el panel de administración de WordPress y luego vas a Configuración > Enlaces permanentes, verás que WordPress te permite elegir un formato para crear las URL para cualquier entrada que publiques. La URL puede contener una combinación de mes, día, categoría de la entrada y nombre de la entrada, entre otros detalles.
Elegir una de estas configuraciones y hacer clic en el botón Guardar cambios le pedirá a WordPress que actualice el archivo .htaccess con algunas condiciones de reescritura de URL. Tu archivo .htaccess tendrá algunas reglas de reescritura de URL similares a las que se enumeran a continuación.
1 |
# BEGIN WordPress |
2 |
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are |
3 |
# dynamically generated, and should only be modified via WordPress filters. |
4 |
# Any changes to the directives between these markers will be overwritten. |
5 |
<IfModule mod_rewrite.c> |
6 |
RewriteEngine On |
7 |
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
|
8 |
RewriteBase / |
9 |
RewriteRule ^index\.php$ - [L] |
10 |
RewriteCond %{REQUEST_FILENAME} !-f
|
11 |
RewriteCond %{REQUEST_FILENAME} !-d
|
12 |
RewriteRule . /index.php [L] |
13 |
</IfModule> |
14 |
|
15 |
# END WordPress |
Tu propio archivo .htaccess podría contener muchas reglas más, dependiendo de los plugins que tengas instalados en tu sitio web. Por ejemplo, cualquier plugin de seguridad que tengas instalado puede añadir reglas al archivo, con el fin de evitar el acceso desde ciertas direcciones IP, o puede permitir el acceso solamente desde direcciones IP incluidas en la lista blanca. Los plugins de seguridad pueden hacer muchas cosas más dentro del archivo .htaccess, como prevenir comentarios no deseados creados por bots y enlaces directos a imágenes.
La siguiente imagen muestra algunas reglas escritas por el plugin All In One WP Security en el interior del archivo .htaccess.



También encontrarás algunas reglas adicionales relacionadas con el almacenamiento en caché de diferentes tipos de archivos. Estas pueden configurarse si tienes instalado cualquier plugin de optimización de WordPress que gestione el almacenamiento en caché. Esta es una imagen con algunas reglas sobre fechas de vencimiento de la caché de diferentes tipos de archivos. Estas fueron agregadas por un plugin de almacenamiento en caché.



Problemas para encontrar y actualizar archivos .htaccess
Se supone que el archivo .htaccess debe trabajar con el servidor web Apache. Esto significa que no encontrarás un archivo .htaccess funcional en otros servidores como Nginx. Si has buscado en tu directorio raíz y aún no ves un archivo .htaccess, por favor consulta con tu proveedor web para saber si estás ejecutando Apache o alguna otra tecnología.
WordPress también necesita tener los permisos adecuados para leer y modificar un archivo .htaccess. Deberás cambiar los permisos del archivo para que WordPress pueda actualizarlo si no funciona de forma predeterminada.
Comprende los conceptos básicos de los archivos .htaccess
Generalmente, cualquier plugin de seguridad y de almacenamiento en caché que instales en tu sitio web hará más que simplemente escribir un grupo de líneas en el interior de tu archivo .htaccess. Sin embargo, tener conocimientos básicos sobre algunos comandos comunes te permitirá adquirir más confianza para modificar un archivo .htaccess si surge la necesidad. Esto también puede ayudarte a evitar la instalación de plugins para realizar tareas sencillas, como redirigir a los usuarios a páginas seguras o redirigirlos de una URL antigua que no existe a una nueva.
Siempre es importante hacer una copia de seguridad de tu archivo .htaccess original antes de que comiences a hacerle cambios. Esto se debe a que cualquier error al cambiar el archivo puede ocasionar que tu sitio web deje de funcionar o hacer que se comporte de maneras inesperadas. Tener una copia del original te permitirá poner el sitio web en funcionamiento simplemente reemplazando el archivo modificado con la versión original.
Puedes escribir tus reglas y comentarios para proporcionar instrucciones a otros o explicar por qué escribiste esas reglas. En un archivo .htaccess, todos los comentarios deben comenzar con # como primer carácter. Te mostraremos cómo llevar a cabo algunas tareas básicas editando directamente tu archivo .htaccess en lugar de instalar un plugin.
Redirección de URL antiguas
Digamos que tenías una entrada popular en alguna URL antigua que ya no existe. Esto podría ser algo relacionado con una versión más antigua de un producto que ya no vendes, etcétera. En esos casos, quizá quieras redireccionar a las personas que estén visitando la URL antigua a tu nueva página web.
Puedes agregar la siguiente línea a tu archivo .htaccess para hacer eso. Recuerda reemplazar las rutas con los valores reales de tus URL.
1 |
Redirect 301 /some-old-post-url/ /new-post-url/ |
También puedes redirigir todo tu sitio web a una nueva URL utilizando el mismo comando. En mi caso, la instalación de WordPress se encuentra en un directorio llamado wordpress. Por lo tanto, puedo agregar la siguiente línea dentro de mi archivo .htaccess para redirigir a otro lugar.
1 |
Redirect 301 /wordpress/ https://code.tutsplus.com/ |
Después de agregar la línea anterior, alguien que visite /wordpress/some-post/ será redirigido a https://code.tutsplus.com/some-post/.
Almacenamiento en caché de tipos comunes de archivos
Los visitantes habituales de tu sitio web solicitarán los mismos archivos CSS, JavaScript e imágenes una y otra vez. Por lo tanto, tiene sentido permitirles obtener esos archivos de la caché en lugar de hacer una transferencia regular. Puedes añadir funcionalidad básica de almacenamiento en caché con un archivo .htaccess. Este es un ejemplo que guarda estos archivos en caché.
1 |
<IfModule mod_expires.c> |
2 |
ExpiresActive On |
3 |
|
4 |
ExpiresByType text/css A604800 |
5 |
ExpiresByType text/javascript A1296000 |
6 |
ExpiresByType application/javascript A1296000 |
7 |
ExpiresByType application/x-javascript A1296000 |
8 |
|
9 |
ExpiresByType image/jpeg A2592000 |
10 |
ExpiresByType image/png A2592000 |
11 |
</IfModule> |
El número que aparece después de A establece la cantidad total de segundos durante los cuales se almacenarán en caché los archivos. Hay otra manera de establecer un período de almacenamiento en caché especificando el período de tiempo como valores legibles para los humanos.
1 |
<IfModule mod_expires.c> |
2 |
ExpiresActive On |
3 |
|
4 |
ExpiresByType text/css "access plus 1 week" |
5 |
ExpiresByType text/javascript "access plus 15 days" |
6 |
ExpiresByType application/javascript "access plus 15 days" |
7 |
ExpiresByType application/x-javascript "access plus 15 days" |
8 |
|
9 |
ExpiresByType image/jpeg "access plus 1 month" |
10 |
ExpiresByType image/png "access plus 1 month" |
11 |
</IfModule> |
Ahora deberías poder especificar instrucciones de almacenamiento en caché para los tipos de archivos que no sean compatibles con los plugins que llevan a cabo esa función.
Redirección de usuarios a páginas seguras
Otro uso del archivo .htaccess es redirigir a los usuarios de páginas HTTP a las páginas HTTPS correspondientes. Puedes usar las siguientes reglas para lograrlo.
1 |
RewriteEngine On |
2 |
RewriteCond %{HTTPS} off
|
3 |
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
|
Las banderas R y L pueden estar en cualquier orden. La bandera R le pide al servidor que envíe un código de respuesta específico, y la bandera L le pide al servidor que detenga el procesamiento de más reglas del conjunto.
Pensamientos finales
Comenzamos esta publicación con una breve explicación del propósito de los archivos .htaccess. Después de eso, aprendimos en qué lugar puedes encontrar estos archivos en WordPress y cómo es que este último y otros plugins los usan para hacer cosas como almacenar recursos en caché y mejorar la seguridad. Finalmente, discutimos algunas reglas y comandos comunes que encontrarás en tus propios archivos .htaccess y hablamos sobre cómo agregarlos si aún no existen.
Hay mucho más qué aprender sobre los archivos .htaccess. Una forma de comenzar es leer este tutorial introductorio de uso general sobre .htaccess de Apache.



