Skip to content
A NGINX module to change the `Content-Type` output header depending on an extension variable according to a condition specified in the 'if' clause.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.



The ngx_http_types_filter module can be used to change the Content-Type output header according to the condition specified in if clause. If true, it would parse extension from the extension variable, use this extension instead of uri's extension to determine the Content-Type output header. If there was no if clause, this would be done unconditionally.


location / {
    types_filter $arg_fname if ($condition);
    types_filter $arg_fname;
    types_filter_use_default on;


  • syntax: types_filter <$extension> [if ($condition)]
  • default: --
  • context: http, server, location

If an if clause supplied, the module will only change the Content-Type output header depending on the extension variable when the evaluation of the clause is true. If there was no if clause, this would be done unconditionally. The condition was checked in the order of their appearance in the configuration file. Only the type process in first condition matched would be done. The last '.' leading part but without '/' before the '.' in the extension variable value is parsed as the extension name.

  • syntax: types_filter_use_default on|off
  • default: on
  • context: http, server, location

If the flag was set to off, when no extension name found in extension variable, or didn't find the type in types of the location, the module would not use the default type of the location, just skip this header filter module.


cd nginx-*version*
./configure --add-module=/path/to/this/directory
make install


This module is compatible with following nginx releases:

  • 1.2.6
  • 1.2.7



You can’t perform that action at this time.