Forzar una descarga usando en htaccess en la raíz WWW

Estoy tratando de forzar la descarga de todos los archivos de una carpeta.

El enlace en la página se ve así

Click to download 

Y tengo este fragmento en mi .htaccess

  ForceType application/octet-stream Header set Content-Disposition attachment  

Ya sé que las 2 líneas dentro de la etiqueta funcionan, porque funciona cuando pongo un .htaccess directamente dentro de la carpeta donde quiero forzar la descarga con el siguiente código:

  ForceType application/octet-stream Header set Content-Disposition attachment  

Parece que hay algo que no entiendo acerca de la etiqueta filesMatch.

Consulte la documentación de FilesMatch y Files , respectivamente. Claramente indica

Las directivas dadas en esta sección se aplicarán a cualquier objeto con un nombre base (último componente de nombre de archivo) que coincida con el nombre de archivo especificado.

Eso significa que en tu ejemplo coincide con file.pdf . Su segundo ejemplo *.* file.pdf con file.pdf , sin embargo, su primer ejemplo .*uploads/documents.* file.pdf En realidad, nunca puede coincidir, ya que contiene una barra inclinada, que se utiliza como un separador de directorio.

Si puedes editar la configuración de Apache

Debe incluir O (según lo que desee hacer cumplir la descarga) en una directiva de Location :

   ForceType application/octet-stream Header set Content-Disposition attachment   

Si no puede editar la configuración de apache

Desafortunadamente, la directiva de Ubicación no está permitida dentro de los archivos .htaccess. Simplemente cree un .htaccess dentro de su directorio /uploads/documents/ .

Buscando más información encontré este código:

  ForceType application/octet-stream Header set Content-Disposition attachment  

Trabajó para mi.

Este código es perfecto si no lo usa - en el nombre del archivo!

Por ejemplo, para name-1.mp3, cambie a name1.mp3

  ForceType application/octet-stream Header add Content-Disposition "attachment"  

Borre su navegador y compruébelo.