Seguridad en WordPress: 20 tips para .htaccess

Trucos .htaccessEl fichero htaccess (fichero de acceso a hipertexto) es un archivo de configuración del nivel de directorio que permite la gestión descentralizada de la configuración del servidor web. Un archivo .htaccess suele agregarse en el directorio raíz y con él se pueden modificar muchos parámetros de configuración de WordPress.

.htaccess se puede usar para un montón de tips (optimizaciones) que garanticen y mejoren la funcionalidad de los blogs y sitios web de WordPress.

[-] Indice de contenidos
  • htaccess y SEO
  • htaccess y WordPress
  • Trucos o hacks para .htaccess
  • htaccess y SEO

    El uso que hacemos los consultores SEO freelance del fichero .htaccess para el posicionamiento en buscadores, es bastante amplio y contempla aspectos como: redirecciones, rewrite de url, mejora de la velocidad de carga habilitando la compresión con .htaccess, soluciones al contenido duplicado, migraciones, etc.

    htaccess y WordPress

    Cuando instalamos WordPress se crea un fichero .htaccess que WordPress usa por defecto, pero ese fichero puede ser mejorado, utilizando consejos como los que os ofrecemos a continuación.

    Trucos o hacks para .htaccess

    A continuación presentamos los 20 tips traducidos de Top 20 hacks para htaccess que dificultan y evitan la piratería en WordPress. Algunos consejos son para:  bloquear direcciones IP específicas, redirigir a los visitantes a la página de mantenimiento cuando se está rediseñando el sitio en particular, restringir direcciones ip que acceder a la administración WordPress y muchos otros trucos o consejos para .htaccess en WordPress.

    Como ya os hemos dicho lo que presentamos a continuación son unos simples trucos o hacks para htaccess, pero si queréis configurar correctamente un fichero .htaccess no podéis dejar de leer la guía de referencia de .htaccess.

    1 Bloquear IPs de usuarios o bots indeseados

    1. order allow,deny
    2. allow from all
    3. deny from 123.456.789
    4. deny from 93.121.788
    5. deny from 223.956.789
    6. deny from 128.456.780

    2 Limpiar fechas en urls con htaccess

    1. RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ http://www.xxx.com/$4

    3 Redireccionar a una página de mantenimiento

    1. RewriteEngine on
    2. RewriteCond %{REQUEST_URI} !/maintenance.html$
    3. RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123
    4. RewriteRule $ /maintenance.html [R=302,L]

    4 htaccess: Redirigir hacia www

    1. RewriteEngine On
    2. RewriteBase /
    3. RewriteCond %{HTTP_HOST} ^yourblogname.com [NC]
    4. RewriteRule ^(.*)$ http://www.yourblogname.com/$1 [L,R=301]

    5 htaccess: Redirigir hacía el dominio

    1. RewriteEngine On
    2. RewriteBase /
    3. RewriteCond %{HTTP_HOST} ^www.yourblogname.com [NC]
    4. RewriteRule ^(.*)$ http://yourblogname.com/$1 [L,R=301]

    6 Url canónica con htaccess

    1. RewriteEngine On
    2. RewriteCond %{HTTP_HOST} ^yourblogname\.com$ [NC]
    3. RewriteRule ^(.*)$ http://www.yourblogname.com/$1 [R=301,L]

    7 Redirigir el feed hacia FeedBurner

    1. RewriteEngine on
    2. RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
    3. RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
    4. RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/webanddesigners [R=302,NC,L]

    8 Redirigir el feed de los comentarios

    1. RewriteEngine on
    2. RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
    3. RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
    4. RewriteRule ^comments/feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/webanddesigners [R=302,NC,L]

    9 Redirecciones 301 con htaccess

    1. Redirect 301 /abc/file.html http://www.yourblogname.com/def/file.html

    10 Forzar la cache desde htaccess

    1. FileETag MTime Size
    2. ExpiresActive on
    3. ExpiresDefault "access plus x seconds"

    11 Restringir las IPs que acceden a la administración de WordPress

    1. AuthUserFile /dev/null
    2. AuthGroupFile /dev/null
    3. AuthName "Wordpress Admin Access Control"
    4. AuthType Basic
    5. order deny,allow
    6. deny from all
    7. allow from xx.xx.xx.xx

    12 Bloquear comentarios spam

    1. RewriteEngine On
    2. RewriteCond %{REQUEST_METHOD} POST
    3. RewriteCond %{REQUEST_URI} .wp-comments-post\.php*
    4. RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR]
    5. RewriteCond %{HTTP_USER_AGENT} ^$
    6. RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

    13 Bloquear una IP spam

    1. order allow,deny
    2. deny from 200.49.176.139
    3. allow from all

    14 Denegar acceso al fichero de configuración de WordPress(wp-config)

    1. order allow,deny
    2. deny from all

    15 Limitar el peso de los archivos subidos

    1. LimitRequestBody 10240000

    16 Personalizar la página 404 con htaccess

    1. ErrorDocument 401 /err/401.php
    2. ErrorDocument 403 /err/403.php
    3. ErrorDocument 404 /err/404.php
    4. ErrorDocument 500 /err/500.php

    17 Añadir barra (/) al final de las urls

    1. RewriteBase /
    2. RewriteCond %{REQUEST_FILENAME} !-f
    3. RewriteCond %{REQUEST_URI} !#
    4. RewriteCond %{REQUEST_URI} !(.*)/$
    5. RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]

    18 Proteger directorios con claves

    1. AuthType Basic
    2. AuthName "restricted area"
    3. AuthUserFile /usr/local/var/www/html/.htpasses
    4. require valid-user

    19 Resolver errores en urls con htaccess

    1. CheckSpelling On

    20 Asegurar los plugins de WordPress

    1. order allow,deny
    2. allow from all


    ¿Tienes algun truco para htaccess más?, hazlo llegar con un comentario!!

    ¿Con ganas de aprender más? Conóceme y sigue mis perfiles sociales AQUÍ.

    También puedes conocer mis servicios:.

    Servicios SEO


    Servicios personalizados como Consultor SEO Freelace para profesionales, eCommerce, agencias y PYMES

    11 comentarios

    1. Crea Mi Web

      Buenos días Juan Luis, Muy interesante este post que publicas sobre .htaccess con los tiempos que corren, cada vez es más necesario cubrir estos puntos débiles. Quería comentarte que el enlace a: “guía de referencia de .htaccess” esta roto.
      Un saludo.

    2. Francisco

      Hola! tengo cuatro dominios con un solo alojamiento.
      dominio 1 alojamiento principal una web y en una carpeta una tienda prestashop.
      dominio 2 solo dominio dirigido a principal web.
      dominio 3 solo dominio dirigido a tienda prestashop
      dominio 4 solo dominio dirigido a tienda prestashop
      Mi pregunta donde coloco los ficheros robots.txt y sitepam.xml?
      Muchas gracias por su respuesta atentamente Francisco

    3. jlmora

      El fichero robots.txt tiene que estar en dominio.tal/robots.txt y el sitemap tiene que quedar dentro del dominio correspondiente, pero lo puedes poner donde te venga bien e indicarlo en robots.txt

    4. Elder Solano

      Hola un cordial saludo. Tengo el siguiente proble con prestashop 1.5.2 Al momento de hacer modificaciones en los productos, pueder ser precio, características etc, me da error 404 Página no encontrada. Todo venia bien hasta que empecé a configurar todo lo referente a SEO y URL amigables y estoy casi seguro que se trata del archivo .Htaccess y no he tocado nada más porque tengo entendido que al activar las URL amigables desde Back Office de
      Prestashop en ese momento se genera el archivo htaccess.Al igual las fotos de las Subcategorías ahora no las muestra mientras antes de esto si lo hacia. Le he dado mil vueltas y en foros en donde a otros le da el mismo error, se lo da desde otro punto de prestashop y no al momento de modificar productos.
      Agradezco desde ya su ayuda. Mil gracias

    5. jlmora

      Haz una prueba, busca los recursos que no se muestran mirando el código fuente de la página, copia por ejemplo el src de alguna img que no se este mostrando, ponlo en la barra de direcciones y mira si te está redireccionando a alguna parte. Si te pasa algo así está claro que es por .htaccess o algún tipo de redirecciones que tengas implementadas en tu PrestaShop.

    6. jerenino

      Hola, intento cambiar el directorio donde está instalado mi sitio web y luego me queda resolver el tema de modificar los enlaces permanentes. Al parecer esa modificación se realiza desde htaccess, es así?. Qué debo hacer?. Para que quede claro, instalé WordPress 3.51 MultiSitio, pero como es mi primera vez… al instalar acepté que lo hiciera dentro de una carpeta llamada “wp”. Yo acepté y al querer publicar mi sitio… me di con la dura realidad de que el sitio debe estar alojado en el directorio raíz, y que en caso de multisitio… el raíz es el propio dominio, en mi caso sería algo así como public_html/midominio.com mientras que actualmente todo el sitio está en public_html/midominio .com/wp. Qué hago?. En principio edité la línea de .htaccess RewriteBase /wp/ eliminando /wp con lo que la línea quedó simplemente RewriteBase /. Puedo abrir el sitio utilizando cualquier explorador escribiendo simplemente www. dominio .com (antes debía ser www. dominio .com/wp). Pero… al utilizar el sitio con los menúes, etc… las páginas buscan los enlaces permanentes que involucran la carpeta wp. Bien, cómo modifico los enlaces permanentes?. Y los futuros?. En síntesis, cambiar los ya emitidos y el “molde” que los genera. Desde ya muchas gracias. Un saludo.

    7. itoiz

      he añadido el primer truco al htaccess y mi blog ha dejado de funcionar

      a que se puede deber?

    8. Juan Carlos

      Muy buenas Juan Luis,

      Lo primero, por este gran post.

      Una duda. Mi .htaccess que quiero configurar es para Prestashop, imagino que sea igual no?

      Lo que quiero es redireccionar con el 301 la URL de midominio.com a www . midominio . com

      con añadir esta línea, ya está ¿no?:
      RewriteEngine OnRewriteBase /RewriteCond %{HTTP_HOST} ^marelmujer .com [NC]RewriteRule ^(.*)$ http :// www . marelmujer .com/$1 [L,R=301]

      Saludos y gracias por adelantado!

    Dejar un comentario

    Tu dirección de correo electrónico no será publicada.

    Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.