15 fragmentos de .htaccess útiles para su sitio de WordPress
Teniendo un archivo .htaccess bien configurado es crucial si quieres aumentar la seguridad y reducir vulnerabilidades en su sitio de WordPress. Por lo general, el objetivo principal de crear una archivo .htaccess personalizado es para evitar que su sitio sea hackeado, pero también es una excelente manera de manejar redirecciones y administrar tareas relacionadas con el caché.
.htaccess es un archivo de configuración Utilizado en servidores web Apache. La mayoría de los sitios de WordPress Ejecutar en un servidor Apache, aunque una pequeña porción es impulsado por Nginx. En este artículo, puedes encontrar un colección de fragmentos de código .htaccess, la mayoría de los cuales puede usar para proteger su sitio web, mientras que el resto implementa otras características útiles.
No te olvides de copia de seguridad del archivo .htaccess antes de editarlo para que siempre puedas volver a la version anterior Si algo va mal.
Y, si eres alguien que prefiere no tocar los archivos de configuración, te recomiendo el Seguridad a prueba de balas El plugin que es el más confiable (y probablemente el más antiguo). plugin de seguridad .htaccess gratuito en el mercado.
Crea el archivo WP predeterminado .htaccess
.htaccess trabaja en un por directorio lo que significa que cada directorio puede tener su propio archivo .htaccess. Puede suceder fácilmente que su sitio de WordPress aún no tiene un archivo .htaccess. Si no encuentra un archivo .htaccess en su directorio raíz crear un archivo de texto vacío y nombrarlo para .htaccess
.
Abajo, usted puede encontrar el por defecto .htaccess Utiliza WordPress. Cuando necesite este código, puede buscarlo rápidamente en el Códice de WordPress. Tenga en cuenta que hay un .htaccess diferente para WP Multisite.
# COMENZAR WordPressRewriteEngine On RewriteBase / RewriteRule ^ index \ .php $ - [L] RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule. /index.php [L] # FIN WordPress
Las líneas que comienzan con #
son comentarios. No edites nada entre líneas # COMENZAR WordPress
y # FIN WordPress
. Añade tus reglas de .htaccess personalizadas debajo de estas reglas predeterminadas.
Todos los fragmentos de código que puedes encontrar en este artículo. ir al archivo .htaccess núcleo encontrado en su directorio raíz.
1. Denegar el acceso a todos los archivos .htaccess
El código de abajo niega el acceso a todos los archivos .htaccess que haya instalado en su WordPress. De esta manera usted puede evitar que la gente vea su configuraciones de servidor web.
# Niega el acceso a todos los archivos .htaccessOrden Permitir, Denegar Denegar de todos Satisfacer todos
2. Protege tu configuración WP
los wp-config.php
archivo contiene todas tus configuraciones de WP, Incluyendo su base de datos de inicio de sesión y contraseña. Puedes negarlo de todos o dar permiso a los administradores para acceder a ella.
Si eliges este último comentar la # Permitir desde xx.xx.xx.xxx
línea (eliminar #
desde el principio de la línea) y inserte la dirección IP del administrador en lugar de xx.xx.xx.xxx
.
# Protege wp-configOrden Permitir, Denegar # Permitir desde xx.xx.xx.xxx # Permitir desde yy.yy.yy.yyy Denegar desde todos
3. Prevenir el ataque DDoS XML-RPC
WordPress soporta XML-RPC por defecto, que es un interfaz que hace la publicación remota posible. Sin embargo, aunque es una gran característica, también es una de las mayores vulnerabilidades de seguridad de WP, ya que los hackers pueden explotarlo para ataques DDoS.
Si no desea utilizar esta función, es mejor simplemente deshabilitarlo. Al igual que antes, puedes añadir excepciones por comentar la # Permitir desde xx.xx.xx.xxx
línea y la adición de las direcciones IP de su administrador (s).
# Protege XML-RPC, previene el ataque DDoSOrdenar Denegar, Permitir # Permitir desde xx.xx.xx.xxx # Permitir desde yy.yy.yy.yyy Denegar desde todos
4. Protege tu área de administración
También es una buena idea proteger el área de administración Dando acceso solo a los administradores. Aquí, no te olvides de agrega al menos uno “Permitir” excepción De lo contrario, no podrá acceder a su administrador en absoluto..
# Protege el área de administración por IP AuthUserFile / dev / null AuthGroupFile / dev / null AuthName "WordPress Admin Access Control" AuthType BasicOrdenar Denegar, Permitir Denegar de todo Permitir desde xx.xx.xx.xxx Permitir desde yy.yy.yy.yyy
5. Prevenir listado de directorio
La mayoría de los sitios de WordPress no deshabilitan la lista de directorios, lo que significa que cualquiera puede navegar por sus carpetas y archivos, Incluyendo cargas de medios y archivos de plugin. No hace falta decir que esta es una gran vulnerabilidad de seguridad..
Abajo, puedes ver como un el listado típico de directorios de WordPress parece.
Por suerte, solo necesitas una línea de código para bloquear esta característica Este fragmento de código será devolver un mensaje de error 403 A quien quiera acceder a sus directorios..
# Evita las opciones de listado de directorios -Indexes
6. Impedir enumeración de nombre de usuario
Si los WP permalinks están habilitados, es bastante fácil enumerar nombres de usuario Utilizando los archivos del autor. Los nombres de usuario revelados (incluido el nombre de usuario del administrador) se pueden usar en ataques de fuerza bruta.
Inserte el siguiente código en su archivo .htaccess para evitar la enumeración de nombre de usuario.
# Evita la enumeración del nombre de usuario RewriteCond% QUERY_STRING author = d RewriteRule ^ /? [L, R = 301]
7. Bloquear spammers y bots.
A veces es posible que desee restringir el acceso desde ciertas direcciones IP. Este fragmento de código proporciona una forma fácil de bloquear los spammers y los robots que ya conoce.
# Bloquea spammers y bots.Orden Permitir, Denegar Denegar desde xx.xx.xx.xxx Denegar desde yy.yy.yy.yyy Permitir de todos
8. Prevenir hotlinking de imagen
Aunque no es una amenaza de seguridad., imagen en caliente sigue siendo una cosa molesta. La gente no solo usa tus imágenes sin tu permiso Pero incluso lo hacen a tu costo. Con estas pocas líneas de código, puede proteger su sitio de los enlaces de imagen..
# Impide que la imagen se reenvíe RewriteEngine on RewriteCond% HTTP_REFERER! ^ $ RewriteCond% HTTP_REFERER! ^ Http (s)?: // (www \.)? Yourwebsite.com [NC] RewriteCond% HTTP_REFERER! ^ Http ( s)?: // (www \.)? yourwebsite2.com [NC] RewriteRule \. (jpe? g? | png | gif | ico | pdf | flv | swf | gz) $ - [NC, F, L]
9. Restrinja el acceso directo a los archivos PHP de plugins y temas
Puede ser peligroso si alguien llama directamente a tu plugin y archivos de tema, Ya sea que ocurra accidentalmente o por un atacante malicioso. Este fragmento de código proviene de la empresa de seguridad del sitio web Acunetix; Puedes leer más sobre esta vulnerabilidad en su blog..
# Restringe el acceso a los archivos PHP desde los directorios de complementos y temas RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / file / to / exclude \ .php RewriteCond% REQUEST_URI! ^ / Wp-content / plugins / directory / to / exclude / RewriteRule wp-content / plugins / (. * \. php) $ - [R = 404, L] RewriteCond% REQUEST_URI! ^ / wp-content / themes / file / to / exclude \ .php RewriteCond% REQUEST_URI! ^ / Wp-content / themes / directory / to / exclude / RewriteRule wp-content / themes / (. * \. Php) $ - [R = 404, L]
10. Configurar redirecciones permanentes.
Tu puedes fácilmente manejar redirecciones permanentes con .htaccess. Primero tienes que añadir el URL antigua, luego sigue el nueva URL que apunta a la página a la que desea redireccionar al usuario.
# Redirecciones permanentes Redirect 301 / oldurl1 / http://yoursite.com/newurl1 Redirect 301 / oldurl2 / http://yoursite.com/newurl2
11. Enviar a los visitantes a una página de mantenimiento
Escribimos sobre esta técnica en detalle aquí. Tu necesitas un página de mantenimiento separada (mantenimiento.html
en el ejemplo) para que funcione esta regla .htaccess. Este código pone tu sitio de WordPress en modo de mantenimiento.
# Redirige a la página de mantenimientoRewriteEngine en RewriteCond% REMOTE_ADDR! ^ 123 \ .456 \ .789 \ .000 RewriteCond% REQUEST_URI! /Maintenance.html$ [NC] RewriteCond% REQUEST_URI! \. (Jpe? G? | Png | gif ) [NC] RewriteRule. * /Mantenimiento.html [R = 503, L]
12. Restringir todo acceso a WP incluye
los / wp-includes /
carpeta contiene los archivos básicos de WordPress que son necesarios para que el CMS funcione. No hay contenido, complementos, temas o cualquier otra cosa a la que un usuario quiera acceder aquí. Así que para reforzar la seguridad es mejor restringir todo acceso a ella.
# Bloquea todas las carpetas y archivos wp-includesRewriteEngine On RewriteBase / RewriteRule ^ wp-admin / includes / - [F, L] RewriteRule! ^ Wp-includes / - [S = 3] RewriteRule ^ wp-includes / [^ /] + \. Php $ - [F, L] RewriteRule ^ wp-includes / js / tinymce / langs /.+ \. Php - [F, L] RewriteRule ^ wp-includes / theme-compat / - [F, L]
13. Bloqueo de scripts entre sitios (XSS)
El siguiente fragmento de código es de WP Mix y protege su sitio contra Algunos ataques XSS comunes, Es decir, inyecciones de script e intentos de modificar variables globales y de solicitud..
# Bloquea algunos ataques XSSRewriteCond% QUERY_STRING (\ |% 3E) [NC, OR] RewriteCond% QUERY_STRING GLOBALES (= | \ [| \% [0-9A-Z] 0,2) [O] RewriteCond% QUERY_STRING _REQUEST (= | \ [| \% [0-9A-Z] 0,2) RewriteRule. * Index.php [F, L]
14. Habilitar el almacenamiento en caché del navegador
Como mencioné anteriormente, .htaccess no solo es bueno por razones de seguridad y redirecciones, sino que también puede ayudarlo. administrar el caché. El fragmento de código a continuación es de Temas elegantes y hace posible el almacenamiento en caché del navegador permitiendo a los visitantes guardar ciertos tipos de archivos, así que la próxima vez que visiten no tienen que descargarlos nuevamente.
# Habilita el almacenamiento en caché del navegadorExpiresActive On ExpiresByType image / jpg "access 1 year" ExpiresByType image / jpeg "access 1 year" ExpiresByType image / gif "access 1 year" ExpiresByType image / png "access 1 year" ExpiresByType text / cs "access 1 mes" ExpiresByType pdf "acceso 1 mes" ExpiresByType text / x-javascript "acceso 1 mes" ExpiresByType application / x-shockwave-flash "acceso 1 mes" ExpiresByType imagen / x-icon "acceso 1 año" ExpiresDefault "acceso 2 días"
15. Configurar páginas de error personalizadas
Puede usar .htaccess para configurar páginas de error personalizadas en su sitio de WordPress. Para que este método funcione, también necesitas crear las páginas de error personalizadas (personalizado-403.html
, personalizado-404.html
en el ejemplo) y subirlos a su carpeta raíz.
Puede configurar una página de error personalizada para Cualquier código de estado de error HTTP (Códigos de estado 4XX y 5XX) que desee.
# Configura páginas de error personalizadas ErrorDocument 403 /custom-403.html ErrorDocument 404 /custom-404.html