Server Fault is a question and answer site for system and network administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have a directory of text files that I'm serving out with apache 2. Normally when I (or any user) access the files they see them in their browser. I want to 'force'* the web browser to pop up a 'Save as' dialog box. I know this is possible to do with the Content-Disposition headers (more info).

Is there some way to turn that on for each file?

Ideally I'd like something like this:

<Directory textfiles>
   AutoAddContentDispositionHeaders On

And then apache would set the correct content disposition header, including using the same filename.

Something like this might be possible with the apache Header directive.

Bonus points if it's included by standing in apache in debian.

I could do a simple PHP wrapper script that takes in a filename argument, makes the call to header(...) and then prints the file, but then i have to validdate input etc. that's work I'm trying to avoid.

* I know you can't actually force things when it comes to the web

share|improve this question
up vote 7 down vote accepted

I have discovered that this does what I want:

<Location /textfiles>
    SetEnvIf Request_URI "^.*/([^/]*)$" FILENAME=$1
    Header set "Content-disposition" "attachment; filename=%{FILENAME}e"
    UnsetEnv FILENAME
share|improve this answer
What is the "e" for at the end of the file name? I see that it doesn't work without it, but I don't understand what it does. – mehaase Apr 18 '13 at 14:36
It just means "the contents of the environment variable named FILENAME" (see documentation of mod_headers: – Ale Aug 10 '15 at 18:23

mod_headers should be what you are looking for:

<IfModule mod_headers.c> 
  <Location ~ ".*/textfiles/.*"> 
    Header set Content-Disposition attachment
share|improve this answer
A good start, but i also want the filename in there so that it pops up the (same) filename. However I have found a similar solution – Rory Jan 12 '10 at 16:52

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.