Generador de .htaccess para WordPress

Añade unas protecciones a nivel de servidor sin escribir reglas Apache a mano. El generador corre en tu navegador y no sube nada.

Cómo usarlo

WordPress usa .htaccess para permalinks en servidores Apache y LiteSpeed. También puede bloquear el acceso a archivos sensibles antes de que cargue WordPress. Nginx no usa este archivo.

  1. 1. Elige las protecciones que necesitas. Los valores por defecto son un buen punto de partida.
  2. 2. Copia las reglas y pégalas encima de # BEGIN WordPress. No reemplaces el bloque de WordPress.
  3. 3. Sube el archivo y sigue las comprobaciones de abajo. Guarda una copia por si el servidor devuelve un error 500.
Seguridad (activada por defecto)
Seguridad (desactivada salvo que la necesites)
Extras opcionales
Rendimiento (suele ir mejor en un plugin de caché)
Incluir reglas de permalinks de WordPress (solo si falta .htaccess)

4 protecciones. Pega encima del bloque de WordPress.

Apache 2.4 o LiteSpeed con mod_authz_core. Nginx ignora este archivo. Haz copia primero. Pega encima de # BEGIN WordPress y deja ese bloque intacto.

Se descarga como htaccess.txt. Pega encima de # BEGIN WordPress. Renómbralo a .htaccess en la raíz de WordPress.

# Generated by WP Security Ninja
# https://wpsecurityninja.com/es/herramientas/htaccess/
# Paste above # BEGIN WordPress. Leave that block alone.
# Backup your current .htaccess first.

<Files "wp-config.php">
	Require all denied
</Files>

<FilesMatch "^\.ht">
	Require all denied
</FilesMatch>

Options -Indexes

Segundo archivo: wp-content/uploads/.htaccess

Pon este archivo en wp-content/uploads/ como .htaccess.

# Generated by WP Security Ninja
# https://wpsecurityninja.com/es/herramientas/htaccess/
# Place this file at wp-content/uploads/.htaccess

<FilesMatch "\.php$">
	Require all denied
</FilesMatch>

Después de subirlo

Haz copia primero. Luego comprueba esto en el navegador. Un 500 significa restaurar el archivo antiguo por SFTP.

  1. La portada, una entrada y /wp-admin/ siguen cargando.
  2. tusitio.com/wp-config.php no debe mostrar PHP.
  3. tusitio.com/wp-content/ no debe listar archivos.
  4. Si el sitio devuelve 500, restaura la copia por SFTP.

Deja que el plugin lo haga sin editar archivos del servidor

Las pruebas gratuitas de Security Ninja cubren muchas de las mismas protecciones (listado de directorios, xmlrpc, cabeceras) desde wp-admin. Pro añade Cloud Firewall y herramientas de acceso para que no mantengas un libro de reglas privado.

Notas largas, rollback y Apache 2.2 frente a 2.4: la guía de seguridad .htaccess (EN).

Preguntas frecuentes

¿Qué es .htaccess en WordPress? +

Es un archivo de configuración de Apache en la raíz del sitio, junto a wp-config.php. WordPress lo usa para permalinks. Puedes añadir unas reglas extra para proteger archivos y forzar HTTPS. No es una pila de seguridad completa.

¿Dónde está el archivo htaccess de WordPress? +

En la raíz de WordPress (la misma carpeta que wp-config.php y wp-login.php). Los gestores de archivos ocultan nombres que empiezan por punto. Activa archivos ocultos, o créalo si falta.

¿Por qué mi archivo htaccess está oculto en WordPress? +

El nombre empieza por un punto, así que clientes FTP y muchos paneles del host lo ocultan por defecto. Activa “mostrar archivos ocultos” y vuelve a mirar.

¿Cómo edito un archivo htaccess en WordPress? +

Descarga una copia primero. Edita con un editor de texto plano por SFTP o el gestor de archivos del host. Pega reglas extra encima de # BEGIN WordPress. No uses Word. Tras guardar, carga la portada, una entrada y /wp-admin/. Si el sitio devuelve 500, restaura la copia.

¿Puede un .htaccess malo tumbar el sitio? +

Sí. Un typo o una regla que tu host no soporta puede devolver HTTP 500. Guarda una copia del archivo actual y una vía de restauración que no dependa de wp-admin.

¿Funciona en Nginx? +

No. Nginx ignora .htaccess. Pon las reglas equivalentes en el server block o en el panel del host. LiteSpeed suele respetar reglas estilo Apache, pero prueba un cambio cada vez.

¿Por qué desaparecen mis reglas personalizadas? +

WordPress sobrescribe todo entre # BEGIN WordPress y # END WordPress al guardar permalinks. Este generador pone reglas extra encima de ese bloque. Deja los marcadores intactos.

¿Debo reemplazar el archivo entero? +

No. Pega las reglas generadas encima de # BEGIN WordPress salvo que el archivo falte. Si falta, activa Include WordPress permalink rules y usa ese archivo completo.

Larger screenshot

Enlarged image