Support » Fixing WordPress » Protect “uploads” directory – Only accesible by logged in users

  • Hi. I have two wp installations:

    / -> public website
    /private/ -> private website, only accesible by logged in users

    I want to protect the /private/wp-content/uploads/ directory and it’s subdirectories. It should be only accesible by logges in users.

    Actually, people can access to next file: http://www.mydomain.com/private/wp-content/uploads/2019/03/my-file.pdf

    I desire that users not logged in, when try access above file, they are redirect to http://www.mydomain.com/private/wp-login.php

    I am trying to do it modifing .htaccess file in /private/ directory. However, I have another .htaccess file in / (root) directory. I am following this steps: https://wordpress.stackexchange.com/a/37743

    However, any modification is ignored. A not logged id user can see the PDF file. Could you help me, please?

    —-

    I have try next options:

    RewriteCond %{REQUEST_URI} ^.*private/wp-content/uploads/.*
    RewriteRule ^private/wp-content/uploads/(.*)$ dl-file.php?file=$1 [QSA,L]

    and

    RewriteCond %{REQUEST_URI} ^.*wp-content/uploads/.*
    RewriteRule ^wp-content/uploads/(.*)$ dl-file.php?file=$1 [QSA,L]

    and

    RewriteCond %{REQUEST_FILENAME} -s
    RewriteRule ^private/wp-content/uploads/(.*)$ dl-file.php?file=$1 [QSA,L]

    and another combinations.

    Please, help me.

Viewing 5 replies - 1 through 5 (of 5 total)
  • Hello,

    that’s not a good approach because the htaccess file is used by any site plugin you install and will have side effects.
    The best option is to leave the htaccess with its standard content and make the content private with a plugin that has that functionality like https://es.wordpress.org/plugins/ultimate-member/ or https://es.wordpress.org/plugins/restrict-content/

    Hi Mariano. Firstly, thank you very much for your reply and help.

    I have been looking both plugins, but it seems not solve my problem. No one let me to privatize /wp-content/uploads/ directory and its files. At least, after read the documentation and install both plugins, I can’t solve the problem.

    Hola,

    es que pienso que no deberías pensar en privatizar las carpetas a nivel de sistema que es cómo lo estás enfocando y deberías con los plugin privatizar al acceso a las carpetas a nivel de software, a nivel de WordPress.
    El acceso físico a las carpetas ya está privatizado de por sí por el servidor, no se puede entrar desde el navegador a las carpetas, eso lo hace sólo WordPress. Entonces con los plugins haces que los archivos cuelguen de unas páginas a las que sólo se puede acceder logado. Con eso debes conseguirlo.

    Hola Mariano. Gracias por tu ayuda.

    Es correcto lo que me comentas. Mi idea inicial era privatizar todo el contenido del directorio “uploads” desde el .htaccess Tras leer tu recomendación y habérseme dado el caso de que otro plugin me quitó mis modificaciones, vi lo que tú me comentabas.

    No sé si los plugins lo que hacen es privatizar todo el contenido del directorio “uploads” o privatizar cada fichero media (que es alojado por el sistema en “uploads”) de manera individualizada.

    Seguiré buscando cómo solventarlo. Muchas gracias Mariano.

    Lo privatizan todo. Si alguien tiene la url de un archivo marcado por el plugin como privado no se tiene acceso. Otro plugin que lo hace es Restrict Content Pro, por ejemplo.

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Protect “uploads” directory – Only accesible by logged in users’ is closed to new replies.