Cuando quieras forzar la descarga de archivos para evitar que se abran directamente en el navegador (PDF por ejemplo) puedes resolverlo fácilmente (sin plugins, ni php) con estas 4 lineas de código en tu .htaccess.
<Files *.*> ForceType applicaton/octet-stream Header set Content-Disposition attachment </Files>
Observaciones:
Si lo añades en la carpeta donde están los archivos a descargar, afectará esa carpeta y todas sus subcarpetas y archivos, por lo que si lo añades en la raíz del sitio afectará todo el sitio. El problema es que si no especificas el tipo de archivo, no se ejecutarán ni los .php ni nada, todo se descargará.
Lo que tenemos que hacer es reemplazar <Files *.*> por <Files *.pdf> o la extensión de los archivos que queremos hacer descargables, o si deseas añadir varias extensiones lo haces de a siguiente manera <FilesMatch «\.(jpg|zip|avi)$» >
Aplicarlo a una Carpeta específica
Si quieres añadirlo en la carpeta raíz (a veces es mejor para no olvidarnos) pero decirle a que carpeta aplicarlo, utiliza <Location> de esta forma para especificar la ruta:
<Location "/uploads/pdf/"> <Files *.pdf> ForceType application/octet-stream Header set Content-Disposition attachment </Files> </Location>
En caso de que no te funcione (osea que todo siga igual como si nunca hubieras echo nada), asegúrate que tu servidor web tenga mod_headers activado (lo más probable es que ya esté, pero no activado).
Eso es todo, espero haberte ayudado a resolver un problema, pero si tienes alguna duda, puedes dejarla en los comentarios.