2010-10-20 7 views
14

Ho questa la regola nel mio file .htaccess per forzare i file collegati per scaricare, piuttosto che aprire nel browser:Imposta l'intestazione Content-Disposition per l'allegato solo sui file in una determinata directory?

<FilesMatch "\.(gif|jpe?g|png)$"> 
    ForceType application/octet-stream 
    Header set Content-Disposition attachment 
</FilesMatch> 

Esiste un modo per alterare il RegExp quindi si applica solo ai file in un certo directory?

Grazie

+4

Perché stai usando 'application/octet-stream'? Questo sta semplicemente dicendo al browser che non sai qual è il tipo di file. E questo non è vero. Per forzare un download, 'Content-Disposition: attachment' è tutto ciò di cui hai bisogno. – TRiG

+0

Questo non è completamente vero. Internet Explorer non rispetterà sempre Content-Disposition. Per forzare IE a offrire il prompt di download, è meglio usare application/octet-sream. – aaronbauman

risposta

12

Probabilmente sarà necessario inserire le direttive nel file .htaccess nella directory specifica.

+5

A ha! Sì! Questa deve essere la soluzione, accidenti alla mia mente inflessibile! – DonutReply

2

metterlo in una direttiva <Location>, e/o modificare l'espressione regolare per escludere barre o, se del caso.

+0

La posizione sembra non funzionare nei file htaccess, esiste un modo alternativo? – DonutReply

9

Come ha detto @gumbo, inserire il file .htaccess nella cartella di livello più alto che si desidera modificare. e quelle impostazioni verranno ridotte a sottocartelle. Potresti anche assicurarti che il modulo headers sia abilitato prima di utilizzarlo nel tuo file htaccess. La seguente riga genererà un errore se il modulo intestazioni non è abilitato:

Header set Content-Disposition attachment 

Ecco un esempio che le forze di download del file mp3 solo se il modulo intestazioni è abilitato:

<IfModule mod_headers.c> 
    <FilesMatch "\.(mp3|MP3)$"> 
     ForceType audio/mpeg 
     Header set Content-Disposition "attachment" 
     Allow from all 
    </FilesMatch> 
</IfModule> 

Nota: lo fa non abilita il modulo, semplicemente ignora qualsiasi cosa all'interno dei tag IfModule se il modulo non è abilitato.

Per abilitare i moduli Apache è necessario modificare il file httpd.conf o nel server di wamp è possibile fare clic sull'icona del vassoio del wamp e selezionare "Apache -> Moduli Apache -> headers_module" o assicurarsi che sia selezionato.

+0

quali saranno le modifiche per apache tomcat v8.0? – dearvivekkumar

Problemi correlati