Evita comentarios spam desde htaccess

bot-spammer

Aunque todos tenemos a Akismet instalado para evitar la inmensa mayoría de los comentarios spam hay algunos spammers que poco a poco van aprendiendo y se cuelan en nuestro blog para vender sus viagras, vicodinas o alargamientos de pene, entre otras maravillas de la ciencia moderna.

Pues bien, hay un truco de .htaccess que puede evitar directamente que los bots spammers accedan a nuestros formularios de comentarios. Esto es gracias a que normalmente los bots spammers no tienen referrer, o sea que no vienen de ninguna página, y mucho menos de nuestro blog. Lo que hace este código es comprobar de donde viene nuestro «comentador» y si no viene de alguna página de nuestro blog (lo más lógico tras hacer clic en un permalink nuestro) evita que acceda al archivo wp-comments-post.php.

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

Solo tienes que cambiar la dirección en la línea 4 del código y guardar este código en tu fichero .htaccess.

VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(4 votos, promedio: 4.8)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

AVISO: Esta publicación es de hace 3 años o más. Si es un código o un plugin podría no funcionar en las últimas versiones de WordPress, y si es una noticia podría estar ya obsoleta. Luego no digas que no te hemos avisado.

18 comentarios en “Evita comentarios spam desde htaccess”

  1. @Juan Pablo: yo tenía la misma duda, pero si te fijas a lo que estas negando el acceso es al archivo "wp-comments-post.php" si entras desde el feed a la fuerza tienes que entrar a la página del post (single.php o page.php o cual sea la página), entonces al dar clic al botón de guardar comentarios se manda llamar la página esa y como el referer al archivo que se utiliza para guardar los comentarios siempre irá la página donde estas tecleando el comentario (que es diferente a wp-comments-post.php).

    Saludos.

  2. cierto lo que señala Toño… no lo probé pero pensandolo es pura lógica y debe ser así, como lector (desde el feed o desde cualquier lado) accedemos al post y dentro está el wp-comments….

    gracias Toño y Fernando, a toquetear el htaccess entonces, genial!

      1. Pero debo agregar todos el código, o al código que colocaste le agrego la línea RewriteCond %{REQUEST_URI} .wp-register.php*

        Es decir, lo dejaría
        <code>
        RewriteEngine On
        RewriteCond %{REQUEST_METHOD} POST
        RewriteCond %{REQUEST_URI} .wp-comments-post.php*
        RewriteCond %{REQUEST_URI} .wp-register.php*
        RewriteCond %{HTTP_REFERER} !. *www.blog.com.* [OR]
        RewriteCond %{HTTP_USER_AGENT} ^$
        RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
        </code>

        Gracias

  3. Interesante método, voy a ponerlo a prueba a ver qué tal, si ya apenas tengo que revisar el Akismet xD

    Un saludo y muchas gracias por la propuesta! 😉

  4. Interesante este truco. Hace apenas dos semanas que instale a WP Captcha Free, que junto con Askimet es una gran combinacion. Desde entonces ya no tengo los molestos spam en espera pero tampoco los molestos y confusos captchas.

    Lo malo es que es un plugin mas, asi que este truco me va muy bien.

  5. Pingback: Evitar comentarios spam - ezequielconde.com.ar | Diseño Web, Wordpress y más...

  6. Pingback: Entradas en las blogosferas.123, Carrero

  7. Pingback: Problema con comentarios spam alguna solucion rapida

  8. Pingback: Asegurando WordPress con .htaccess | Ayuda WordPress

  9. Genial truco!. Hace muchos años hice algo parecido editando wp-comments (en los campos del formulario), pero con las actualizaciones de wordpress me perdí. 

    Este truco me cae como bendición, ya que tengo que borrar más de comentarios 300 comentarios spam todos los días.

  10. Esto es lo que estaba necesitando, pero no entiendo como se hace. Ingrese al htaccess y me figura lo siguiente:

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteRule ^index.php$ – [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    Tengo que colocar lo que indicas en el medio de lo que me figura o reemplazarlo todo?.
    Gracias por la ayuda.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido