blog webempresa

¿Errores con CAPTCHA en Contact Form 7? ¡prueba esta solución!

por | May 12, 2015 | Aprender WordPress

¿Errores con CAPTCHA en Contact Form 7? ¡prueba esta solución!

Si tu Hosting está en un servidor que trabaja con NginX, algunos recursos como las imágenes son servidas desde caché, por lo que las soluciones utilizando CAPTCHA o reCAPTCHA es posible que no funcionen.

Algunas reglas del módulo mod_rewrite se encargan de restringir el acceso a archivos o carpetas en instalaciones que utilicen por ejemplo protección de carpetas mediante .htaccess, de forma que no puedan ser listadas ni accedidas desde urls conocidas por parte de usuarios sin privilegios.

Es posible que en determinadas circunstancias necesitemos excluir carpetas afectadas por reglas del mod_rewrite en el archivo .htaccess de forma que no se vean afectadas por esta restricción.

 

El problema

 

Las llamadas al sistema de CAPTCHA en Contact Form 7 se realizan con códigos cortos como:


[captchac CAPTCHALR size:m] [captchar CAPTCHALR]

Si las imágenes de CAPTCHA se gestionan fuera de la carpeta principal y la que aloja las imágenes de seguridad está afectada por una regla de mod_rewrite, lo más probable es que la imagen de cAPTCHA no se muestre al usuario y este no pueda completar un acceso, un registro o enviar un formulario en el caso de Contact Form 7.

Cabe decir que aunque es un problema detectado y comprobado en servidores con NginX, la tecnología de servidores y software aplicado ha evolucionado mucho en los últimos años y no necesariamente sea aplicable en las actuales instalaciones de WordPress que utilicen métodos de protección contra spammers basados en CAPTCHA o reCAPTCHA.

 

La solución

 

Podemos resolver este inconveniente añadiendo el siguiente código en el archivo .htaccess de la instalación afectada:



<IfModule mod_rewrite.c> 
RewriteEngine On
RewriteBase / 
RewriteRule ^index\.php$ - [L] 
RewriteRule (.*) /index.php? uamfiletype=attachment&uamgetfile=$1 [L]  
</IfModule>


Posiblemente RewriteBase requiera que especifiques una carpeta concreta si tu instalación no está directamente alojada en /public_html.

 

Proceso resumido por pasos

 

  1. Accede a tu Panel de Hosting y ve al Administrador de Archivos (también puedes hacerlo por FTP).
  2. Adicionalmente realiza una copia de seguridad de tu instalación afectada ¡nunca se sabe!.
  3. Localiza el archivo .htaccess (oculto) de la instalación afectada.
  4. Editalo, en la medida de lo posible con el Editor de Código.
  5. Añade el código arriba indicado, al final del código de WordPress (1).
  6. Guarda los cambios y limpia la caché de tu navegador.
  7. Verifica si ahora se visualiza la imagen de CAPTCHA de Contact Form 7.

 

(1) Código que por defecto debe incorporar tu instalación de WordPress en el archivo .htaccess:



# BEGIN WordPress <IfModule mod_rewrite.c> 
RewriteEngine On
RewriteBase / 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
# END WordPress


 
No obstante se trata de casos puntuales que no siempre pueden requerir la misma solución, ya que problemas con permisos incorrectos podrían también ser la causa. En estos casos es bueno siempre consultar con tu Departamento de Soporte para que te facilite detalles del problema y te ayude a resolverlos.

¿Te ha resultado útil este artículo?

Promo Hosting Octubre