Magnolia 6.1 reached end of life on March 31, 2021. This branch is no longer supported, see End-of-life policy.
This page explains how MIME types (media types, content types) are mapped to file extensions in Magnolia.
MIME types are configured in
config:/server/MIMEMapping. You can edit them with the Configuration app.
Example: The MIME type
text/html is mapped to extension
html. The type
The example above shows just two types. Magnolia configures many more MIME types by default.
Parent node name such as
MIME type for the given file extension. See Official list of media types.
File extension. If not set,
ContentTypeFilter is a filter in the Magnolia filter chain.
ContentTypeFilter does not set the response content type, instead it's the responsibility of renderers/servlets to set correct content type (for instance FreemarkerRenderer sets the content type). However, ContentTypeFilter sets some parameters onto AggregationState and takes care of restricting responses to configured MIME types and matching requests to content types.
By default, Magnolia tries to respond to every request, even if the MIME type is not configured. To restrict responses to configured MIME types only, add a
registeredExtensionsOnly property to the
contentType filter configuration:
true Magnolia will respond with response code 400 to requests with extensions that are not registered in MIMEMapping.
If the request has no extension, Magnolia assumes it is
You can restrict responses to match content types with the
Example: If you request https://demopublic.magnolia-cms.com/travel.c, the HTML source is returned because of the
text/plain MIME mapping in
To force content type matching, add the
validateContentType property in
server/filters/contentType and set the value to
validateContentType property is set to
true, Magnolia will respond with response code 400 if the requested extension does not match the content type. This property essentially disables all unknown extensions.