Tutoriales de WordPress de Confianza, cuando más los necesitas.
Guía para Principiantes de WordPress
Copa WPB
25 Millones+
Sitios web que usan nuestros plugins
16+
Años de experiencia en WordPress
3000+
Tutoriales de WordPress de expertos

12 trucos de .htaccess más útiles para WordPress

Editar el archivo .htaccess de tu sitio web puede sonar intimidante para los principiantes de WordPress. Pero según nuestra experiencia, es una herramienta que puedes usar para mejorar el rendimiento, la seguridad y el SEO de tu sitio web.

Puedes pensar en el archivo como un panel de control para ajustar la configuración del servidor de tu sitio sin necesidad de ser un genio de la codificación.

En este artículo, te mostraremos algunos trucos útiles de .htaccess para WordPress que te darán un mayor control sobre tu presencia en línea.

Los trucos .htaccess más útiles para WordPress

¿Qué es el archivo .htaccess y cómo editarlo?

El archivo .htaccess es un archivo de configuración del servidor web Apache. Es un archivo de texto que te permite definir reglas para que tu servidor las siga para tu sitio web de WordPress.

WordPress utiliza el archivo .htaccess para generar una estructura de URL amigable para SEO. Sin embargo, este archivo puede hacer mucho más que almacenar la configuración de los permalinks.

El archivo .htaccess se encuentra en la carpeta raíz de tu sitio de WordPress. Necesitarás conectarte a tu sitio web usando un cliente FTP o el administrador de archivos de cPanel para editarlo.

Archivo .htaccess en un sitio de WordPress

Si no puedes encontrar tu archivo .htaccess, consulta nuestra guía sobre cómo encontrar el archivo .htaccess en WordPress.

Antes de editar tu archivo .htaccess, es importante descargar una copia en tu computadora como respaldo. Puedes usar ese archivo en caso de que algo salga mal.

Dicho esto, veamos algunos trucos útiles de .htaccess para WordPress que puedes probar:

1. Protege tu área de administración de WordPress

Puedes usar .htaccess para proteger tu área de administración de WordPress limitando el acceso solo a direcciones IP seleccionadas.

Simplemente copia y pega este fragmento de código en tu archivo .htaccess:

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
# whitelist Syed's IP address
allow from xx.xx.xx.xxx
# whitelist David's IP address
allow from xx.xx.xx.xxx
</LIMIT>

No olvides reemplazar los valores xx con tu propia dirección IP. Si usas más de una dirección IP para acceder a Internet, asegúrate de agregarlas también.

Para obtener instrucciones detalladas, consulta nuestra guía sobre cómo limitar el acceso a la administración de WordPress usando .htaccess.

2. Protege con contraseña la carpeta de administración de WordPress

Proteger con contraseña el directorio de administración de WordPress

Si accedes a tu sitio de WordPress desde múltiples ubicaciones, incluidos puntos de acceso público a Internet, entonces limitar el acceso a direcciones IP específicas puede no funcionar para ti.

Puedes usar el archivo .htaccess para agregar una protección de contraseña adicional a tu área de administración de WordPress.

Primero, necesitas generar un archivo .htpasswds. Puedes crear uno fácilmente usando este generador en línea.

Sube este archivo .htpasswds fuera de tu directorio web accesible públicamente o de la carpeta /public_html/. Una buena ruta sería:

/home/user/.htpasswds/public_html/wp-admin/passwd/

A continuación, crea un archivo .htaccess y súbelo al directorio /wp-admin/ y luego agrega el siguiente código allí:

AuthName "Admins Only"
AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd
AuthGroupFile /dev/null
AuthType basic
require user putyourusernamehere
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>

Importante: No olvides reemplazar la ruta de AuthUserFile con la ruta del archivo .htpasswds y agregar tu propio nombre de usuario.

Para obtener instrucciones detalladas, consulta nuestra guía sobre cómo proteger con contraseña la carpeta de administración de WordPress (wp-admin).

3. Deshabilitar la navegación de directorios

Deshabilitar exploración de directorios

Muchos expertos en seguridad de WordPress recomiendan deshabilitar la navegación de directorios. Con la navegación de directorios habilitada, los hackers pueden examinar la estructura de directorios y archivos de tu sitio para encontrar un archivo vulnerable.

Para deshabilitar la navegación de directorios en tu sitio web, necesitas agregar la siguiente línea a tu archivo .htaccess:

Options -Indexes

Para más información sobre este tema, consulta nuestra guía sobre cómo deshabilitar la navegación de directorios en WordPress.

4. Deshabilitar la ejecución de PHP en algunos directorios de WordPress

A veces, los hackers irrumpen en un sitio de WordPress e instalan una puerta trasera. Estos archivos de puerta trasera a menudo se disfrazan como archivos principales de WordPress y se colocan en las carpetas /wp-includes/ o /wp-content/uploads/.

Una forma más sencilla de mejorar la seguridad de tu WordPress es deshabilitando la ejecución de PHP para algunos directorios de WordPress.

Necesitarás crear un archivo .htaccess en blanco en tu computadora y luego pegar el siguiente código dentro de él:

<Files *.php>
deny from all
</Files>

Guarda el archivo y luego súbelo a tus directorios /wp-content/uploads/ y /wp-includes/.

Para más información, consulta nuestro tutorial sobre cómo deshabilitar la ejecución de PHP en ciertos directorios de WordPress.

5. Protege el archivo de configuración de tu WordPress wp-config.php

Probablemente el archivo más importante en el directorio raíz de tu sitio web WordPress es el archivo wp-config.php. Contiene información sobre tu base de datos de WordPress y cómo conectarte a ella.

Para proteger tu archivo wp-config.php de accesos no autorizados, simplemente agrega este código a tu archivo .htaccess:

<files wp-config.php>
order allow,deny
deny from all
</files>

6. Configuración de redirecciones 301 a través del archivo .htaccess

Usar redirecciones 301 es la forma más amigable con el SEO para decirle a tus usuarios que el contenido se ha movido a una nueva ubicación. Si deseas administrar correctamente tus redirecciones 301 de forma individual por publicación, consulta nuestra guía sobre cómo configurar redirecciones en WordPress.

Por otro lado, si deseas configurar redirecciones rápidamente, todo lo que necesitas hacer es pegar este código en tu archivo .htaccess:

Redirect 301 /oldurl/ http://www.example.com/newurl
Redirect 301 /category/television/ http://www.example.com/category/tv/

7. Bloquea direcciones IP sospechosas

¿Estás viendo un número inusualmente alto de solicitudes a tu sitio web desde una dirección IP específica? Puedes bloquear fácilmente esas solicitudes bloqueando la dirección IP en tu archivo .htaccess.

Simplemente agrega el siguiente código a tu archivo .htaccess:

<Limit GET POST>
order allow,deny
deny from xxx.xxx.xx.x
allow from all
</Limit>

No olvides reemplazar xx con la dirección IP que deseas bloquear.

8. Deshabilita el hotlinking de imágenes en WordPress usando .htaccess

Otros sitios web que hacen hotlinking directo de imágenes de tu sitio pueden hacer que tu sitio de WordPress sea lento y exceder tu límite de ancho de banda. Esto no es un gran problema para la mayoría de los sitios web pequeños. Sin embargo, si administras un sitio web popular o un sitio web con muchas fotos, entonces esto podría convertirse en una preocupación seria.

Puedes prevenir el hotlinking de imágenes agregando este código a tu archivo .htaccess:

#disable hotlinking of images with forbidden or custom image option
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?wpbeginner.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]

Este código solo permite que las imágenes se muestren si la solicitud se origina en wpbeginner.com o Google.com. No olvides reemplazar wpbeginner.com con el nombre de tu propio dominio.

Para más formas de proteger tus imágenes, consulta nuestra guía sobre formas de prevenir el robo de imágenes en WordPress.

9. Protege .htaccess del acceso no autorizado

Como has visto, hay muchas cosas que se pueden hacer usando el archivo .htaccess. Debido al poder y control que tiene sobre tu servidor web, es importante protegerlo del acceso no autorizado por parte de hackers.

Simplemente agrega el siguiente código a tu archivo .htaccess:

<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>

10. Aumenta el tamaño de carga de archivos en WordPress

Hay diferentes maneras de aumentar el límite del tamaño de carga de archivos en WordPress. Sin embargo, para los usuarios en hosting compartido, algunos de estos métodos no funcionan.

Uno de los métodos que ha funcionado para muchos usuarios es agregar el siguiente código a su archivo .htaccess:

php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300

Este código simplemente le dice a tu servidor web que use estos valores para aumentar el tamaño de carga de archivos, así como el tiempo máximo de ejecución en WordPress.

11. Deshabilita el acceso al archivo XML-RPC usando .htaccess

Cada instalación de WordPress viene con un archivo llamado xmlrpc.php. Este archivo permite que aplicaciones de terceros se conecten a tu sitio de WordPress. La mayoría de los expertos en seguridad de WordPress aconsejan que si no estás usando ninguna aplicación de terceros, deberías deshabilitar esta función.

Hay múltiples maneras de hacer eso. Una de ellas es agregando el siguiente código a tu archivo .htaccess:

# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

Para más información, consulta nuestra guía sobre cómo deshabilitar XML-RPC en WordPress.

12. Bloquea escaneos de autor en WordPress

Una técnica común utilizada en los ataques de fuerza bruta es escanear autores en un sitio de WordPress y luego intentar descifrar contraseñas para esos nombres de usuario.

Puedes bloquear dichos escaneos agregando el siguiente código a tu archivo .htaccess:

# BEGIN block author scans
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]
# END block author scans

Para más información, consulta nuestro artículo sobre cómo disuadir ataques de fuerza bruta bloqueando escaneos de autores en WordPress.

Esperamos que este artículo te haya ayudado a aprender los trucos más útiles de .htaccess para WordPress. También te puede interesar nuestra guía sobre cómo realizar una auditoría de seguridad de WordPress y nuestra selección experta de los mejores plugins de protección de contenido para WordPress.

Si te gustó este artículo, suscríbete a nuestro canal de YouTube para obtener tutoriales en video de WordPress. También puedes encontrarnos en Twitter y Facebook.

Descargo de responsabilidad: Nuestro contenido es compatible con el lector. Esto significa que si haces clic en algunos de nuestros enlaces, podemos ganar una comisión. Consulta cómo se financia WPBeginner, por qué es importante y cómo puedes apoyarnos. Aquí está nuestro proceso editorial.

El Kit de herramientas definitivo para WordPress

Obtén acceso GRATUITO a nuestro kit de herramientas: ¡una colección de productos y recursos relacionados con WordPress que todo profesional debería tener!

Interacciones del lector

44 CommentsLeave a Reply

  1. El archivo .htaccess, como uno de los archivos de configuración de Apache, es fantástico para modificar un sitio web y mejorar la seguridad. Realmente puedes hacer maravillas con él. Mejorar la seguridad, modificar URLs, aumentar límites y más. ¡Gracias por los excelentes ejemplos para este archivo! Para mí, la prevención de hotlinking (que antes manejaba a través de Cloudflare) y la protección de directorios con contraseña (generalmente la gestionaba a través de un plugin) han sido particularmente útiles.

  2. La sección wp-config.php fue de gran ayuda. La he usado en varios sitios de clientes y puedo dar fe de ello. Otra cosa que agregaría es hacer siempre una copia de seguridad de tu archivo .htaccess original antes de hacer cambios. Esto me ha salvado muchas veces al solucionar problemas del servidor. ¡Excelente guía!

  3. Hola, ¿alguno de estos códigos puede afectar a Google Analytics? Agregué los números 5, 9 y 12 y ahora GA no puede detectar la información de los visitantes del sitio web ni siquiera mostrar si hay alguien en la plataforma.

    • Los métodos de este artículo no deberían afectar la capacidad de Google Analytics para rastrear tu contenido. Dependería de cómo hayas agregado Google Analytics para saber cuál podría ser el problema.

      Administrador

  4. Me interesó bastante el punto 9, proteger el htaccess en sí. ¿Significa esto que este archivo también está disponible de otra forma que no sea por FTP? Intenté acceder a él clásicamente a través de un navegador web y no encontré la manera. Por lo que entiendo, las expresiones prohíben el acceso a cualquier cosa que tenga 'hh', 'tt', 'aa' en el nombre. ¿Significa esto que hay una forma de atacar el htaccess que no sea a través de FTP?

    • Hay más formas que solo FTP para acceder a los archivos, esta es una forma de ayudar a limitar las formas de acceso como otra herramienta para la seguridad de tu sitio.

      Administrador

      • Entiendo y agradezco la respuesta. Establecí los permisos en 644 en el archivo htaccess e inserté sus directivas en él. Gracias por este artículo, que una vez más me abrió los ojos porque siempre pensé que htaccess solo se podía administrar a través de FTP o el administrador de WordPress. Uno siempre está aprendiendo :).

  5. Uso protección con contraseña para wp-login.php. Mis clientes no pueden cerrar sesión cuando login.php está protegido. ¿Hay alguna forma en que pueda permitir que los clientes cierren sesión sin llamar a wp-login.php?action=logout?
    Los administradores tampoco pueden cerrar sesión, pero eso no es un problema.
    La URL de cierre de sesión del cliente de Woocommerce es, domain.com/account/customer-logout.
    Ambos llaman a wp-login.php para cerrar sesión. A los clientes se les pide el ID y la contraseña de htaccess. Si hay una solución, hágamelo saber. Gracias

    • Si su sitio tiene un inicio de sesión para usuarios que no son sus administradores, entonces no recomendaríamos proteger con contraseña su wp-login.php por el momento y no tenemos una solución alternativa en este momento.

      Administrador

      • Gracias por esa información. Espero que Wordpress agregue una función en el futuro donde no redirija a login.php para cerrar sesión.

  6. Por favor ayúdenme.
    cuando pego el siguiente código en el archivo .htaccess, muestra un error que es..

    Parece que no tienes
    permiso para acceder a esta página.
    Error 403. Prohibido.

  7. ¡Gran artículo!
    ¿Necesito hacer esto si ya tengo instalado el plugin WordFence?
    Algunas personas no recomiendan meterse con el archivo .htaccess.
    Saludos.

  8. No estoy seguro de qué significa exactamente “Proteger .htaccess del acceso no autorizado”. ¿Podré acceder a él si hago cambios a partir del punto 9?

    • Significa que si alguien sabe dónde se encuentra tu htaccess y trata de ver el archivo poniendo esa dirección en la URL, el navegador no podrá verlo.

      Administrador

  9. cómo usar el nombre de usuario y la contraseña de wp login (usuario registrado) para acceder en tu tema n.º 2 (Proteger con contraseña la carpeta de administración de WordPress).

    espero encontrar la respuesta aquí.

    gracias

  10. Hola Syed Balkhi,

    Tengo que abrir una URL que tiene parámetros de consulta y cadenas como esta.

    algo.ejemplo.com/nombrepagina.php?consulta1=cadena1&consulta2=cadena2&urlredireccion=http%3A%2F%2Falgo.ejemplo2.com/algo&consulta3=cadena3

    En la URL anterior, el problema es %3A%2F%2F. Muestra un error 403 prohibido. Si elimino esa parte, la URL funciona bien.

    He buscado y probado todos los métodos como mod rewrite, redirect, etc., pero nada funciona.

    ¿Hay alguna forma de eliminar (o) reescribir (o) redirigir esa parte codificada usando el archivo .htaccess? Esa parte está en medio de muchos parámetros. Hay muchos parámetros de consulta antes y después de esa parte.

    Por favor, comparte tu idea.

  11. ¡¡Este es un gran artículo!! Seguí tus instrucciones y todo funciona bien. Intenté abrir mi sitio de administración usando una dirección IP diferente y funciona muy bien. Gracias por compartir tu conocimiento.

  12. Al proteger el directorio a wp-admin (como se explica en 2. Proteger con contraseña la carpeta de WordPress), cuando voy a cualquier página del sitio aparece el mensaje para poner la contraseña.. ¿Cómo soluciono eso?
    Lo intenté desde Cpanel y sucede el mismo problema

  13. El consejo en el punto 4 para deshabilitar la ejecución de php ha comenzado a causar problemas con el editor tinymce en páginas y publicaciones. Se incluye un archivo php en la carpeta tinymce que carga los archivos js relevantes. Acabo de eliminar el código htaccess de la carpeta wp-include para detener el problema. ¿Quizás haya otra manera de solucionar esto?

  14. El punto 5 no está funcionando
    (5. Protege el archivo wp-config.php de la configuración de tu WordPress)

    [05-Mar-2018 08:20:03 Etc/GMT] Error de análisis PHP: error de sintaxis, se esperaba '<' en /home/—–/public_html/xyz.com/wp-config.php en la línea 91

  15. ¡Hola, gracias!
    ¿Es posible ver el .htaccess completo en alguna parte? Sí, podría leer: “pon una línea después de la otra” pero aún no estoy seguro.

    ¿Entonces "# END WordPress" es la última línea o está en la parte superior?

    ¿Y qué opinas de poner "Options -Indexes" al final?

    ¡Gracias por tu respuesta!

  16. buen artículo... tengo una pregunta, después de implementar el código en htaccess. ¿Necesito instalar un plugin de seguridad o no...??

    yudi cb (principiante)

  17. ¡Hola!
    ¡Gran artículo y solo una pregunta!
    ¿Debería colocar el código adicional (especialmente las optimizaciones de velocidad) antes o después de la parte # BEGIN WordPress?

    Saludos
    Kevin

  18. Hola, mi desarrollador de temas me dijo que esto podría estar en el htaccess, pero no sé por qué mi WordPress está agregando esto al final de todas mis páginas:

    ¿Alguna idea de por qué está agregando "/?v=8f2564d40946"? He revisado mis Enlaces Permanentes, Slugs, etc. y nada ahí?

    ¡Gracias por tu ayuda!

    • Hola Brian,

      Parece que la etiqueta GeoLocation agregada por WooCommerce.

      Si estás usando WooCommerce, entonces puedes desactivarlo. Ve a la página de Opciones generales de WooCommerce y desmarca la opción ‘Geolocalizar con soporte de caché de página’.

      Administrador

  19. Otro post maravilloso de WP Beginner… Solo un consejo para todos los novatos… Si bien WP Beginner tiene algunos de los mejores consejos y trucos para WordPress, cuando se trata de proteger tu sitio, si estás en un servidor compartido, busca primero “soporte”. He aprendido mucho sobre el backend leyendo posts en WP Beginner, pero la verdad es que no soy un experto en backend y la mayoría de los hostings compartidos ya tienen una solución implementada para este tipo de cosas… Estoy con InMotion y ellos tienen soluciones de un clic para muchos problemas que afectan la seguridad del sitio. Desactivé el índice de archivos directamente desde CPanel…

    ¡WP Beginner sigue siendo mi referencia para el conocimiento de WordPress… ¡Son geniales!

  20. Es un buen artículo sobre htaccess. Pero, ¿cómo se implementa esto en un solo archivo? ¿Puedo poner todas las líneas una después de otra?

Deja una respuesta

Gracias por elegir dejar un comentario. Ten en cuenta que todos los comentarios son moderados de acuerdo con nuestra política de comentarios, y tu dirección de correo electrónico NO será publicada. Por favor, NO uses palabras clave en el campo del nombre. Tengamos una conversación personal y significativa.