Skip to content

Headers

The Headers directives allow you to set, modify, and remove HTTP response headers and request headers. These are essential for security headers, CORS configuration, caching policies, and more.

DirectiveSyntaxDescription
Header setHeader [always] set name value [env=VAR]Set a response header, replacing any existing value
Header unsetHeader [always] unset nameRemove a response header
Header appendHeader [always] append name valueAppend a value to an existing header (comma-separated)
Header mergeHeader [always] merge name valueAppend a value only if it is not already present
Header addHeader [always] add name valueAdd a header, even if one with the same name exists
Header editHeader [always] edit name regex replacementEdit a header value using a regex (first match only)
Header edit*Header [always] edit* name regex replacementEdit a header value using a regex (all matches)
RequestHeader setRequestHeader set name valueSet a request header passed to the backend
RequestHeader unsetRequestHeader unset nameRemove a request header before it reaches the backend

The optional always keyword applies the header operation on all responses, including error responses (4xx, 5xx). Without always, headers are only applied to successful responses.

The optional env=VAR condition makes the header operation apply only when the environment variable VAR is set.

Header always set X-Content-Type-Options "nosniff"
Header always set X-Frame-Options "SAMEORIGIN"
Header always set X-XSS-Protection "1; mode=block"
Header always set Referrer-Policy "strict-origin-when-cross-origin"
Header always set Permissions-Policy "camera=(), microphone=(), geolocation=()"
Header set Access-Control-Allow-Origin "https://example.com"
Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
Header set Access-Control-Allow-Headers "Content-Type, Authorization"
SetEnvIf Request_URI "\.pdf$" is_pdf
Header set Content-Disposition "attachment" env=is_pdf
# Remove the Server version from the header value
Header edit Server "Apache/.*" "Apache"
# Replace all occurrences of http with https in Location headers
Header edit* Location "http://" "https://"
Header unset X-Powered-By
Header always unset Server
RequestHeader unset Proxy