Apache HTTP Server Version 2.4

Apache > HTTP Server > Documentation > Version 2.4 > Modules

# Apache Module mod_asis

Description: | Sends files that contain their own HTTP headers
Status: | Base
Module Identifier: | asis_module
Source File: | mod_asis.c

### Summary

This module provides the handler `send-as-is` which causes Apache HTTP Server to send the document without adding most of the usual HTTP headers.

This can be used to send any kind of data from the server, including redirects and other special HTTP responses, without requiring a cgi-script or an nph script.

For historical reasons, this module will also process any file with the mime type `httpd/send-as-is`.

### Topics

- Usage

### Directives

This module provides no directives.

### Bugfix checklist

- httpd changelog
- Known issues
- Report a bug

### See also

- `mod_headers`
- `mod_cern_meta`
- Apache httpd's Handler Use

## Usage

In the server configuration file, associate files with the `send-as-is` handler e.g.

    AddHandler send-as-is asis

The contents of any file with a `.asis` extension will then be sent by Apache httpd to the client with almost no changes. In particular, HTTP headers are derived from the file itself according to `mod_cgi` rules, so an asis file must include valid headers, and may also use the CGI `Status:` header to determine the HTTP response code. The `Content-Length:` header will automatically be inserted or, if included, corrected by httpd.

Here's an example of a file whose contents are sent as is so as to tell the client that a file has redirected.

`Status: 301 Now where did I leave that URL
Location: http://xyz.example.com/foo/bar.html
Content-type: text/html
<html>
<head>
<title>Lame excuses'R'us</title>
</head>
<body>
<h1>Fred's exceptionally wonderful page has moved to
<a href="http://xyz.example.com/foo/bar.html">Joe's</a> site.
</h1>
</body>
</html>`

### Notes:

The server always adds a `Date:` and `Server:` header to the data returned to the client, so these should not be included in the file. The server does not add a `Last-Modified` header; it probably should.