15 fragmentos útiles .htaccess para tu sitio de WordPress
Tener un archivo .htaccess bien configurado es crucial si desea aumentar la seguridad y reducir las vulnerabilidades en su sitio de WordPress. Por lo general, el objetivo principal de crear un archivo .htaccess personalizado es evitar que se piratee su sitio, pero también es una forma excelente de manejar los redireccionamientos y administrar las 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 se ejecutan en un servidor Apache, aunque una pequeña parte es alimentada por Nginx . En este artículo, puede encontrar una 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 funciones útiles.
No olvide hacer una copia de seguridad del archivo .htaccess antes de editarlo para que siempre pueda regresar a la versión anterior si algo sale mal.
Y, si usted es alguien que prefiere no tocar los archivos de configuración, le recomiendo el complemento BulletProof Security, que es el complemento de seguridad .htaccess gratuito más confiable (y probablemente el más antiguo) del mercado.
Crea el WP predeterminado .htaccess
.htaccess funciona 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 tenga un archivo .htaccess . Si no encuentra un archivo .htaccess en su directorio raíz, cree un archivo de texto vacío y .htaccess
nombre a .htaccess
.
A continuación, puede encontrar el .htaccess predeterminado que usa WordPress. Siempre que necesite este código, puede buscarlo rápidamente en el Codex de WordPress. Tenga en cuenta que hay un .htaccess diferente para WP Multisite.
# BEGIN WordPressRewriteEngine On RewriteBase / RewriteRule ^ index \ .php $ - [L] RewriteCond% {REQUEST_FILENAME}! -f RewriteCond% {REQUEST_FILENAME}! -d RewriteRule. /index.php [L] # END WordPress
Las líneas que comienzan con #
son comentarios. No edite nada entre las líneas # BEGIN WordPress
y # END WordPress
. Agregue sus reglas de .htaccess personalizadas debajo de estas reglas predeterminadas .
Todos los fragmentos de código que puede encontrar en este artículo van al archivo .htaccess principal que se encuentra en su directorio raíz.
1. Negar el acceso a todos los archivos .htaccess
El siguiente código niega el acceso a todos los archivos .htaccess que haya instalado en su WordPress. De esta forma, puede evitar que las personas vean las configuraciones de su servidor web .
# Niega el acceso a todos los archivos .htaccessOrdene Permitir, Denegar Denegar a todos Satisfacer a todos
2. Protege tu configuración de WP
El archivo wp-config.php
contiene todas sus configuraciones de WP, incluido el nombre de usuario y la contraseña de su base de datos. Puede negarlo a todos o dar permiso a los administradores para acceder a él .
Si elige este último comentario, # Allow from xx.xx.xx.xxx
línea # Allow from xx.xx.xx.xxx
(elimine #
del principio de la línea) e inserte la dirección IP del administrador en lugar de xx.xx.xx.xxx
.
# Protege a wp-configOrdenar Permitir, Denegar # Permitir desde xx.xx.xx.xxx # Permitir de aa.aa.aa.aaa Negar todo
3. Prevenir el ataque DDoS de XML-RPC
WordPress es compatible con XML-RPC de forma predeterminada, que es una interfaz que hace posible la publicación remota . Sin embargo, si bien es una gran característica, también es una de las mayores vulnerabilidades de seguridad de WP ya que los hackers pueden explotarla para ataques DDoS .
Si no desea utilizar esta característica, es mejor desactivarla . Al igual que antes, puede agregar excepciones comentando la línea # Allow from xx.xx.xx.xxx
y agregando las direcciones IP de su (s) administrador (es).
# Protege XML-RPC, previene el ataque DDoSOrden denegar, Permitir # Permitir desde xx.xx.xx.xxx # Permitir de aa.aa.aa.aaa Negar todo
4. Proteja su área de administración
También es una buena idea proteger el área de administración dando acceso solo a los administradores. Aquí, no olvide agregar al menos una excepción "Permitir", 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 "Control de acceso de administrador de WordPress" AuthType BasicOrden de denegación, Permitir denegar de todo Permitir desde xx.xx.xx.xxx Permitir de aa.aa.aa.aaa
5. Impedir listado de directorio
La mayoría de los sitios de WordPress no desactivan la lista de directorios, lo que significa que cualquiera puede navegar por sus carpetas y archivos, incluidas las cargas de medios y los archivos de complementos. No hace falta decir que esta es una gran vulnerabilidad de seguridad.
A continuación, puede ver cómo se ve una lista típica de directorios de WordPress .
Afortunadamente, solo necesitas una línea de código para bloquear esta función. Este fragmento de código devolverá un mensaje de error 403 a cualquiera que quiera acceder a sus directorios.# Evita la lista de directorios Opciones -Indexes
6. Prevenir enumeración de nombre de usuario
Si los permalinks de WP están habilitados, es bastante fácil enumerar los nombres de usuario usando los archivos de autor. Los nombres de usuario revelados (incluido el nombre de usuario del administrador) se pueden usar en ataques de fuerza bruta .
Inserta el código a continuación en tu archivo .htaccess para evitar la enumeración del nombre de usuario .
# Evita la enumeración de nombre de usuario RewriteCond% {QUERY_STRING} author = d RewriteRule ^ /? [L, R = 301]
7. Bloquear spammers y bots
A veces puede querer restringir el acceso desde ciertas direcciones IP . Este fragmento de código proporciona una forma fácil de bloquear spammers y bots que ya conoce.
# Bloquea los spammers y botsOrdene Permitir, Denegar Denegar desde xx.xx.xx.xxx Denegar desde yy.yy.aa.aaa Permitir de todos
8. Prevenir el enlace directo de la imagen
Aunque no es una amenaza para la seguridad, el enlace de imagen sigue siendo una cosa molesta. Las personas no solo usan sus imágenes sin su permiso sino que incluso lo hacen a su costo. Con estas pocas líneas de código, puede proteger su sitio de enlaces de imagen.
# Evita enlaces directos de imagen RewriteEngine en 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 su plugin y archivos de temas, ya sea que ocurra accidentalmente o por un atacante malintencionado. Este fragmento de código proviene de la compañía de seguridad del sitio web Acunetix ; Puede leer más sobre esta vulnerabilidad en su publicación de 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 redireccionamientos permanentes
Puede manejar fácilmente las redirecciones permanentes con .htaccess. Primero debe agregar la URL anterior y luego seguir la nueva URL que apunta a la página a la que desea redirigir al usuario.
# Redireccionamientos permanentes Redirect 301 / oldurl1 / http://yoursite.com/newurl1 Redirect 301 / oldurl2 / http://yoursite.com/newurl2
11. Enviar visitantes a una página de mantenimiento
Escribimos sobre esta técnica en detalle aquí. Necesita una página de mantenimiento por separado ( maintenance.html
en el ejemplo) para que funcione esta regla .htaccess. Este código pone su 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. * /maintenance.html [R = 503, L]
12. Restringir todo acceso a WP incluye
La carpeta /wp-includes/
contiene los archivos centrales 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í. Entonces, para endurecer la seguridad, es mejor restringir todo acceso a ella .
# Bloquea todo wp-incluye carpetas y archivosRewriteEngine 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. Bloquear scripts de sitios cruzados (XSS)
El siguiente fragmento de código proviene de WP Mix y protege su sitio contra algunos ataques XSS comunes, a saber, inyecciones de scripts e intentos de modificar variables globales y de solicitud.
# Bloquea algunos ataques XSSRewriteCond% {QUERY_STRING} (\ |% 3E) [NC, OR] RewriteCond% {QUERY_STRING} GLOBALS (= | \ [| \% [0-9A-Z] {0, 2}) [OR] RewriteCond% {QUERY_STRING } _REQUEST (= | \ [| \% [0-9A-Z] {0, 2}) RewriteRule. * Index.php [F, L]
14. Habilitar el almacenamiento en caché
Como mencioné antes, .htaccess no solo es bueno por razones de seguridad y redirecciones, sino que también puede ayudarlo a administrar el caché . El siguiente fragmento de código pertenece a Elegant Themes y permite el almacenamiento en caché del navegador al permitir a los visitantes guardar ciertos tipos de archivos, por lo que la próxima vez que lo visiten no tendrán que volver a descargarlos.
# Permite el almacenamiento en caché del navegadorExpiresActive en 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 / css "access 1 month" ExpiresByType application / pdf "access 1 month" ExpiresByType text / x-javascript "access 1 month" ExpiresByType application / x-shockwave-flash "access 1 month" ExpiresByType image / x-icon "access 1 year" ExpiresDefault "access 2 days"
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 debe crear las páginas de error personalizadas ( custom-403.html
, custom-404.html
en el ejemplo) y cargarlas en 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
5 Últimas herramientas de desarrollo web que debes saber
Si ha seguido nuestra publicación mensual sobre Recursos Frescos para Diseñadores y Desarrolladores, puede ver que cada mes se presentan muchas nuevas herramientas; la lista es probablemente infinita. En 2008, cuando recién comenzaba a aprender HTML y CSS, la mayoría de estas herramientas aún no existían.Hoy,
El kit Ultimate iOS 10 GUI para Sketch, Photoshop y Adobe XD
Los diseñadores de UI confían en los kits de UI y en los regalos de diseño porque ahorran tiempo y facilitan el trabajo. Por lo tanto, constantemente se lanzan nuevos kits de GUI para las versiones más recientes de los sistemas Android e iOS para diseños web y aplicaciones móviles.El equipo de Great Simple ha preparado este increíble kit para iOS 10 creado para cada programa de diseño que puedas imaginar .Puede d