Buenos días.
Para proteger ciertos archivos del acceso desde el navegador de mi worpress, son archivos de pago que se descargan en mi web con woocommerce, los he pasado a un subdirectorio que se llama private dentro de wp-content/uploads/private/, en cuyo interior existe un .htaccess con el siguiente texto
Deny from all
Sin embargo, aunque traslade ahí cualquier archivo, al llamarlo después desde el navegador lo abre sin ningún problema. He probado igualmente añadiendo este código al archivo .htaccess
<Files Prueba.pdf>
Order allow,deny
Deny from all
</Files>
Pero el resultado es el mismo. Cuando llamo al archivo Prueba.pdf desde cualquier navegador (nombre_dominio.com/wp-content/uploads/private/Prueba.pdf), incluso entrando como invitado, me lo abre sin ningún problema.
¿Qué estoy haciendo mal?
Gracias de antemano
Para proger esos archivos del acceso desde el navegador, ¿podría cambiar los permisos?
Hola Francisco,
He realizado una prueba para acceder al archivo que comentas y me ha mostrado el siguiente mensaje
Es esto lo que intentabas realizar? si no es así coméntanos y nos indicas cual es la URL de tu consulta, de esta forma podemos verificar con mayor detalle lo que nos comentas.
Un Saludo
Hola Karen.
Exactamente es eso lo que trataba de hacer desde un principio, el otro día cuando os preguntaba cómo proteger ciertos archivos de pago de la biblioteca de medios.
Pepe me recomendó introducirlos en un subdirectorio de uploads diferente para que la URL no fuese tan intuitiva, y al ver que había un subdirectorio llamado private con un archivo .htaccess como el que comentaba, pensé que así bastaría.
Pero no fue así, incluso cambiando el texto del .htaccess como puse más arriba.
Creo que la solución pasa por darle a esos archivos una autorización 600, en lugar de 644 como tienen por defecto. He probado y WooComerce funciona, ejecuta la descarga tras pago, pero el acceso externo desde el navegador está restringido.
La duda que me queda es si,cambiando esos permisos a esos archivos de pago puedo provocar que algo no funcione después,y por qué no funcionó el . htaccess, por si tuviese que usarlo otra vez.
Los archivos son PDF y EPUB. No quiero que nadie los pueda ver salvo si los descarga a través de WooComerce.
Hola
En cuando al archivo .htaccess, es posible que sea debido a la ruta, en tu código se asumo que el archivo prueba.pdf esta en la misma ubicación que el .htaccess, sino es así tendrías que dar la ruta relativa.
Sin embargo lo que comprobaste de los permisos también sería una solución válida ya que WooCommerce si puede acceder al archivo y puede generar el enlace temporal de descarga, realiza pruebas igualmente para verificar esto.
Saludos.
Hola John.
He comprobado en situación real, es decir, en la página web que tengo en marcha y con los archivos reales, y el test ha salido bien. He probado a realizar la compra como invitado en Google para descartar permisos almacenados en el caché y ha funcionado bien, así que supongo que por esa parte la solución es buena. Si el archivo es exclusivo de descarga, WooComerce puede acceder a él y generar el enlace.
En cuanto al . htaccess, sí estaba en la misma ruta. La sintaxis era correcta? Puede haber algún tipo de restricción en el servidor que haga que las modificaciones en . htaccess no funcionen? La verdad es que hice mil pruebas, y ninguna parecía funcionar. Ni en ese directorio ni en ningún otro. De hecho, aunque la carpeta private (que se generó por defecto en la instalación de WordPress) ya tiene ese . htaccess, los archivos que ponía ahí se podían leer sin problema desde el navegador.
Hola
Si quieres salir de dudas sobre el .htaccess podrías consutar esto a través de tickets de soporte, desde allí ven detalles de tu cuenta y verán si lo tienes correctamente implementado.
Saludos.
Ok, lo consultaré ahí. Gracias