Saltar al contenido principal

Protección del Feed — HTTP Basic Auth

Protege los archivos XML de tu feed de productos con usuario y contraseña para que solo los rastreadores autorizados — como el Administrador de Catálogos de Facebook — puedan descargarlos.

nota

Disponible desde v2.4.5

Descripción general

Por defecto, los archivos de feed generados son accesibles públicamente para cualquier persona que conozca la URL. Para la mayoría de tiendas esto es suficiente, pero puede que quieras restringir el acceso por razones de privacidad, para evitar que la competencia escanee tus precios, o para cumplir con la política de una plataforma.

Cuando activas la Protección del Feed, el módulo escribe un archivo .htaccess y un archivo .htpasswd directamente en la carpeta feeds/ dentro del directorio del módulo. Apache (y servidores compatibles como LiteSpeed) aplica entonces la Autenticación Básica HTTP sobre cada archivo .xml de esa carpeta. Cualquier solicitud sin credenciales válidas recibe una respuesta 401 Unauthorized.

El Administrador de Catálogos de Facebook e Instagram es totalmente compatible con esto: puedes incluir las credenciales directamente en la URL de obtención programada, y los rastreadores las transmiten de forma transparente en cada actualización.

Solo Apache/LiteSpeed. El mecanismo .htaccess no es compatible con Nginx. Si tu servidor usa Nginx, esta función no restringirá el acceso. Consulta Requisitos del servidor más abajo.

Activar la protección

  1. Ve a Módulos > Gestor de módulos, busca Facebook & Instagram Product Catalogue Feed Pro y haz clic en Configurar.
  2. Haz clic en la pestaña Protección del Feed.
  3. Establece ¿Proteger la URL de los feeds? en .
  4. Introduce un Usuario y una Contraseña.
  5. Haz clic en Guardar configuración.

En cuanto guardes, el módulo crea (o sobreescribe) .htpasswd y .htaccess en la carpeta feeds/. La contraseña se cifra con bcrypt antes de escribirse — el valor en texto plano nunca se almacena en disco.

Pestaña Protección del Feed con el interruptor Proteger la URL de los feeds, y los campos Usuario y Contraseña

CampoValoresPor defectoDescripción
¿Proteger la URL de los feeds?Sí / NoNoEscribe .htaccess y .htpasswd en la carpeta de feeds al activarse. Los elimina al desactivarse.
UsuarioCualquier cadena(vacío)El nombre de usuario necesario para acceder a los archivos de feed.
ContraseñaCualquier cadena(vacío)La contraseña. Se almacena como hash bcrypt en .htpasswd — nunca en texto plano.

Tanto el Usuario como la Contraseña deben estar rellenos antes de poder activar la protección. Si alguno de los campos está vacío al guardar con el interruptor en Sí, el módulo muestra un error y deja la protección desactivada.

Para desactivar la protección más adelante, establece ¿Proteger la URL de los feeds? en No y guarda. El módulo elimina .htaccess y .htpasswd de la carpeta de feeds para que los archivos XML vuelvan a ser accesibles públicamente.

Añadir las credenciales en el Administrador de Catálogos de Facebook

El Administrador de Catálogos de Facebook obtiene tu feed de forma programada. Cuando el feed está protegido, debes incluir las credenciales en la URL del feed que proporcionas a Facebook.

El formato de una URL con credenciales HTTP Basic Auth integradas es:

https://username:password@yourstore.com/modules/facebookproductsfeed/feeds/feed_1_en.xml

Pasos:

  1. Copia la URL de tu feed desde el panel del módulo (la URL que aparece junto a cada bandera de idioma).
  2. Inserta tus credenciales antes del nombre de dominio: https://https://USUARIO:CONTRASEÑA@
  3. Pega la URL completa en el campo URL del contenido al configurar un Feed Programado en el Administrador de Catálogos de Facebook.
  4. Facebook usará esta URL en cada actualización programada y pasará las credenciales automáticamente.

Consejo: Algunos caracteres especiales en las contraseñas (como @, /, ?, #) deben codificarse en URL cuando se integran en una URL. Por ejemplo, @ se convierte en %40. Si tu contraseña contiene estos caracteres, elige una contraseña más sencilla para evitar problemas de codificación.

Instagram Shopping utiliza el mismo backend del Administrador de Catálogos. El mismo formato de URL con credenciales integradas se aplica también allí.

Requisitos del servidor

RequisitoDetalles
Servidor webApache 2.4+ o LiteSpeed. El mecanismo .htaccess no es compatible con Nginx.
AllowOverrideEl virtualhost de Apache debe permitir la sobreescritura de .htaccess para el directorio del módulo (AllowOverride AuthConfig o AllowOverride All). Si las sobreescrituras están desactivadas, el archivo .htaccess será ignorado y el acceso permanecerá abierto.
Permisos de escrituraPHP debe poder escribir en la carpeta feeds/ dentro del directorio del módulo. El módulo muestra un error al guardar si no puede crear o escribir en .htpasswd o .htaccess.
mod_authn_fileEl módulo de Apache mod_authn_file debe estar activado. Proporciona la directiva AuthUserFile usada en el .htaccess generado. La mayoría de entornos de hosting compartido lo tienen activado por defecto.

Si usas Nginx, considera restringir el acceso a nivel de configuración del servidor (por ejemplo, usando auth_basic en el bloque de tu sitio Nginx). Contacta con tu proveedor de hosting o administrador de sistemas si necesitas ayuda con eso.

Notas importantes

  • Solo se protegen los archivos .xml. El .htaccess que escribe el módulo usa un bloque <FilesMatch "\.xml$">, por lo que otros archivos de la carpeta feeds (como progress.json) siguen siendo accesibles sin credenciales.
  • Un juego de credenciales por tienda. La configuración de protección (FPF_SECURITY, FPF_SECURITY_USER, FPF_SECURITY_PASS) se aplica al contexto de tienda actual. En una configuración multitipo, configura la protección por separado para cada tienda si es necesario.
  • Cambiar las credenciales sobreescribe los archivos. Si actualizas el usuario o la contraseña y vuelves a guardar, el módulo sobreescribe .htpasswd y .htaccess con los nuevos valores de inmediato.
  • Basic Auth para la generación (función independiente). La pestaña Protección del Feed también contiene los campos Basic Auth Username y Basic Auth Password. Estos no tienen relación con la protección del feed — se usan cuando el generador interno de feeds del módulo hace solicitudes HTTP a sí mismo (para la generación en ciclos recursivos) y tu servidor requiere autenticación para acceder al sitio. No los confundas con las credenciales de la carpeta de feeds.

Solución de problemas

ProblemaSolución
Error "Las credenciales de seguridad no son válidas o están vacías" al guardarTanto el Usuario como la Contraseña deben estar rellenos antes de poder activar la protección. Rellena ambos campos y guarda de nuevo.
Error "No se puede crear ni escribir en el archivo .htpasswd"PHP no tiene permiso de escritura en la carpeta feeds/. Comprueba la propiedad y los permisos de la carpeta en tu servidor. La carpeta debe ser escribible por el usuario del servidor web.
La URL del feed sigue siendo accesible sin credenciales tras activar la protecciónEs probable que tu servidor use Nginx, o que Apache tenga AllowOverride None para el directorio del módulo. El archivo .htaccess está presente en disco pero no se está leyendo. Pide a tu proveedor de hosting que active las sobreescrituras de .htaccess, o usa una restricción de autenticación a nivel de servidor.
Facebook devuelve un error "No se pudo obtener el feed" tras activar la protecciónLas credenciales integradas en la URL que proporcionaste a Facebook son incorrectas, o el formato de la URL es erróneo. Verifica el formato https://usuario:contraseña@dominio/... y confirma que las credenciales coinciden con las que configuraste en el módulo.
La protección se desactivó pero el feed sigue devolviendo 401El módulo no pudo eliminar .htaccess o .htpasswd (un problema de permisos de archivo). Elimina manualmente esos dos archivos de la carpeta feeds/ mediante FTP o el gestor de archivos de tu hosting.

Preguntas frecuentes

¿Tengo que actualizar la URL en el Administrador de Catálogos de Facebook cada vez que cambie mi contraseña?

Sí. Las credenciales están integradas en la URL del feed que registraste en Facebook. Cuando cambias el usuario o la contraseña en el módulo, también debes actualizar la URL en el Administrador de Catálogos con las nuevas credenciales — de lo contrario, la obtención programada de Facebook devolverá 401 y el catálogo dejará de actualizarse.

¿Puedo usar cualquier usuario y contraseña, o hay restricciones?

Puedes usar cualquier cadena no vacía. Para mayor comodidad, evita caracteres especiales como @, :, /, ? y # en tu contraseña, ya que estos necesitan codificación URL cuando se integran en una URL del feed. Una contraseña que use solo letras, números y guiones es la más fácil de gestionar.

¿Se almacena la contraseña de forma segura?

Sí. El módulo cifra la contraseña con bcrypt antes de escribirla en .htpasswd. La contraseña en texto plano nunca se almacena en la base de datos ni en disco.

¿Esto protege todos los idiomas y países del feed, o solo uno?

La protección se aplica a toda la carpeta feeds/. Todos los archivos .xml de esa carpeta — independientemente del idioma o país — requieren credenciales una vez activada la protección.

¿Qué ocurre con mis feeds si elimino el archivo .htpasswd manualmente?

El archivo .htaccess sigue haciendo referencia al archivo .htpasswd (ahora inexistente). Apache devolverá un error 500 Internal Server Error para cualquier URL del feed. Para recuperarte, vuelve a activar y guardar la Protección del Feed en el módulo (lo que sobreescribe ambos archivos), o desactiva la protección en el módulo y guarda (lo que elimina el .htaccess huérfano).

Funciones relacionadas