Definir un archivo.htaccess optimizado para WordPress

htaccess-wordpress

El archivo.htaccess se encuentra en la raíz de su sitio web. Le permite dar instrucciones sobre cómo acceder al contenido de su sitio utilizando archivos de configuración específicos de los servidores web Apache. Esto puede implicar reglas de acceso, bloqueo, caché, etc…

Cuando usted dice “acceso a los contenidos” de un sitio, se refiere a “seguridad”. En este tutorial, aprenderá cómo configurar su archivo .htaccess para proteger su sitio WordPress de posibles hackers y cómo mejorar su rendimiento.

Aquí está el programa de este tutorial, HTACCESS para WordPress:

  • ¿Qué es un archivo htaccess?
  • ¿Para qué sirve el.htaccess?
  • ¿Dónde está el acceso a mi WordPress?

Preámbulo: Tenga en cuenta que es imprescindible hacer una copia de seguridad del archivo.htaccess de su sitio web antes de cualquier modificación. Todo lo que se necesita es un error de sintaxis o la omisión de un signo para hacer su sitio inaccesible. Si esto sucede, podrá cargar el archivo inicial para restablecer la configuración original.

¿Qué es un archivo.htaccess?

El archivo htaccess (contracción de “Hypertext Access”) es un archivo de configuración para Apache. Pero, ¿qué es Apache?

Su sitio web está alojado en un servidor. Este servidor es probablemente un servidor Apache ya que hoy en día, la mitad de los sitios web utilizan servidores bajo esta configuración.

Apache es en realidad el software que permitirá a los usuarios de Internet acceder a páginas web en formato HTML y CSS, es decir, un formato que los navegadores pueden mostrar. Es gracias a él que las solicitudes realizadas por los usuarios de Internet en su sitio se muestran correctamente.

Por ejemplo, María consulta su sitio web y desea buscar las últimas aspiradoras disponibles. Escribe en la barra de búsqueda “aspiradoras”. Se envía una solicitud al servidor. Gracias al software Apache, el servidor podrá mostrar la página de resultados de las aspiradoras de María. Proponemos el siguiente diagrama para ilustrar el ejemplo de María.

servidor-wordpress

¿A que sirve el archivo.htaccess?

El archivo htaccess se utiliza principalmente para proteger directorios con contraseñas, crear redirecciones o páginas de error (tipo 401,404….). También le permite actuar sobre ciertos criterios que son favorables para el desarrollo de una estrategia de SEO sólida.

A continuación le proponemos una lista no exhaustiva de acciones que puede llevar a cabo gracias a su archivo htaccess:

  • Redireccionar a otras URLs: para hacer 301, 302, etc……
  • Proteger el acceso a ciertos contenidos: Por ejemplo, crear una contraseña para acceder a las carpetas del servidor.
  • Prohibir una dirección IP: Para prohibir a un competidor malicioso que deja comentarios en su blog de WordPress
  • Crear redirecciones: Al cambiar de http a https o durante el mantenimiento
  • Forzar ciertos eventos: Por ejemplo, la descarga de ciertos archivos o el almacenamiento en caché de su sitio
  • Cambiar las URLs definidas automáticamente en WordPress (mejor conocidas como permalinks)

Algunas de estas acciones tienen un impacto en su referenciación natural. En primer lugar, el almacenamiento en caché de su sitio en los navegadores de sus usuarios le permite optimizar el tiempo que tarda en cargar el sitio la próxima vez que lo visiten.

En segundo lugar, las URLs son parte de los criterios técnicos para optimizar como parte de una estrategia de SEO y puede ser interesante modificarlas a través de su archivo htacces incorporando palabras clave.

¿Dónde puedo encontrar el archivo.htaccess en WordPress?

Normalmente su webhost/WordPress instala automáticamente un archivo.htaccess en su sitio web/blog cuando se crea. Se encuentra en la raíz de su sitio web. Vaya a su cliente FTP para identificar su ubicación:

Traducción realizada con el traductor www.DeepL.com/Translator

htaccess-wordpress

Simplemente haga clic con el botón derecho en el archivo y podrá descargarlo, editarlo o visualizarlo. Puede modificarlo utilizando un editor de texto estándar.

También puede actuar sobre su archivo a través de su Tablero de Control de WordPress, pero estará limitado. Para ello, debe ir a los ajustes de permalink (ver captura a continuación).

enlaces-permanentes-wordpress

Cuando cambie estos ajustes, WordPress creará automáticamente nuevas líneas en su archivo.htaccess. Esto tiene sentido, ya que hemos visto que nos permite actuar sobre URLs.

Para actuar sobre los comandos de su archivo.htaccess, también puede utilizar la extensión gratuita proporcionada en el directorio de WordPress.

Tenga en cuenta que a diferencia de algunos archivos en su servidor (robots.txt, sitemaps…), el archivo”…”. “del archivo”.htaccess”, significa que es un archivo oculto. Sólo es visible a través de clientes FTP que obligan a mostrar archivos ocultos.

Crear un archivo.htaccess para WordPress

Paso 1: Comprender la configuración predeterminada de WordPress

Cuando descargo el archivo.htaccess de mi servidor donde está alojado mi sitio WordPress, aquí está la configuración por defecto:

archivo-htaccess-wordpress

Detallemos juntos el significado de las líneas de este archivo:

El carácter “#” se refiere a los comentarios y no afecta a la configuración establecida.

#BEGIN WordPress
#END WordPress

Estos comentarios indican el comienzo y el final del código por defecto de WordPress.

<IfModule mod_rewrite.c>
</IfModule>

Estas dos etiquetas se ejecutan, sólo si su anfitrión web permite que las URLs sean reescritas. Hosters como OVH lo ofrece automáticamente.

mod_rewrite.c

Es el nombre de un módulo complejo de Apache. Es gracias a él que se pueden manipular las URLs.

RewriteEngine On

La directiva RewriteEngine habilita o deshabilita la ejecución del motor de reescritura. Si configura Off, no se habilitará ninguna de las reglas que especifique.

RewriteBase /

Esta etiqueta indica dónde se encuentra la raíz de su sitio web. Si lo ha colocado en una subcarpeta como www, entonces escribirá “RewriteBase /wwww/”.

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

Antes de entrar en los detalles de este código, nos gustaría explicarle en qué consiste el archivo en cuestión: “index.php”.

Este es el archivo al que se redirigen todos los accesos cuando el usuario no consulta un archivo real (PDF, imagen…). index.php es en realidad el script que le permite buscar en su base de datos los registros que corresponden al “ID” de las páginas y de sus artículos para mostrarlos al usuario. Tenga en cuenta que esta regla está definida precisamente por el código: ^index\.php$ -[L]

%{REQUEST_FILENAME}

En el lenguaje de herramientas de Apache, “%{}” determina una variable. Esta es la variable que indica la ruta exacta del archivo en la base de datos de su servidor.

!-f / !-d

“La “f” representa un archivo y la “d” representa un directorio. El signo de exclamación se utiliza para añadir una negación para indicar que estos archivos no deben verse afectados por el código que seguirá.

RewriteRule . /index.php [L]

RewriteRule solicita la reescritura de la expresión regular (” .”) por la dirección /index.php. Esta regla no se aplica a los archivos o directorios reales gracias al código anterior.

Paso 2: definir los elementos importantes para WordPress

Définissions ensemble les éléments importants que nous allons mettre en place dans notre fichier .htaccess optimisé pour WordPress.

  • “wp-config.php”: uno de los archivos más sensibles de su sitio web. Contiene información sobre su base de datos.
  • Directorios de su sitio: Cualquiera puede acceder al contenido de su servidor con la url de su sitio y el nombre de un directorio. Puede modificar estas reglas.
  • Información sobre el host y el servidor: Bloquee el acceso a posibles hackers ocultando elementos específicos de su servidor.
  • El archivo.htaccess: Es posible y recomendable protegerlo.
  • Información del autor: Oculte sus identificadores e información si está trabajando en un blog colaborativo.
  • Comentarios de spam: Puede adoptar una estrategia sólida para reducir el spam de comentarios combinando el archivo.htaccess con la extensión Akismet.
  • Restricciones de usuario: Puede restringir el acceso a su sitio determinando las IPs involucradas.

Elementos favorables al SEO

  • Memoria caché: permite al usuario utilizar la caché del navegador para mostrar su sitio más rápidamente la próxima vez que lo visite. El tiempo de carga de un sitio es un elemento crucial para garantizar una experiencia de usuario satisfactoria y el desarrollo de su visibilidad en los motores de búsqueda.
  • URLs: para redefinirlos o redirigirlos (301 ó 404 por ejemplo).

Paso 3: Una configuración optimizada para WordPress.

La siguiente configuración se establece para un sitio clásico de WordPress, sin ninguna especificidad particular (multi-sitio, subdominios…). Si desea más información sobre las diferentes configuraciones que existen por defecto, visite https://codex.wordpress.org.

Cada uno de los códigos establecidos aquí se explica a través de comentarios. Finalmente, recuerde comprobar el funcionamiento de su archivo.htaccess realizando pruebas en su navegador. En particular, prueba de acceso, redirección e indisponibilidad de directorios.

#Por defecto en WordPress

# BEGIN WordPress

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# END WordPress

#Primero aseguremos nuestro sitio:

#Bloqueo de la visibilidad del archivo wp-config.php

order allow,deny
deny from all

#Fin del bloqueo

#Prohibición de ver los directorios del sitio:
Options All -Indexes

# Ocultar información del servidor:
ServerSignature Off

# Proteger .htaccess y .htpasswds

order allow,deny
deny from all
satisfy all

# Ocultar la identificación de un autor

RewriteCond %{QUERY_STRING} ^author=([0-9]*)
RewriteRule .* - [F]

# Evitar el spam de los comentarios

RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
RewriteCond %{HTTP_REFERER} !.monsite.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

#Limitar el acceso al sitio a determinados usuarios - Será necesario sustituir xxx.xxx.xxx.xxx.xxx.xxx.xxx.xxx por la dirección IP. order allow,deny
deny from xxx.xxx.xxx.xxx
allow from all

#Optimicemos los elementos favorables al SEO natural

#Elimina la expresión "categoría" de tus urls
RewriteRule ^category/(.+)$ https://www.yourblog.com/$1 [R=301,L]

#Permitir el uso de la caché


ExpiresActive on
ExpiresDefault "access plus 1 year"

#Redirigir a los usuarios a una página de mantenimiento - Cuando realice cambios
RewriteEngine on
RewriteCond %{REQUEST_URI} !/mantenimiento.html$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
RewriteRule $ /mantenimiento.html [R=302,L]

#Instalar una redirección 301
Redirect 301 /www.mi-sitio.com/mi-antigua-pagina.com /
https.mi-sitio.com/mi-nueva-pagina.com

Este artículo del tutorial sobre.htaccess ya está terminado, espero que este archivo le parezca más accesible y le abra el campo de lo posible para sus necesidades.