[build] command = "zola build --drafts" publish = "public/" [dev] command = "zola serve --drafts" publish = "public/" port = 1111 [[redirects]] from = "https://mat-services.netlify.app/*" to = "https://www.mat.services/:splat" force = true [[redirects]] # avoid http -> https -> www double redirect from = "http://mat.services" to = "https://www.mat.services/:splat" force = true [[headers]] for = "/*" [headers.values] # baseline cache, one hour Cache-Control = "public, max-age=3600" # disable FLoC tracking Permissions-Policy = "interest-cohort=()" # enable HSTS Strict-Transport-Security = "max-age=63072000; includeSubDomains; preload" # prevent clients from sniffing the media type X-Content-Type-Options = "nosniff" # clickjacking protection X-Frame-Options = "DENY" # keep referrer data off of HTTP connections Referrer-Policy = "no-referrer" # content security policy # style-src 'unsafe-inline': syntax highlighting in codefences # sandbox allow-popups*: enable target="_blank" links to open in new tabs Content-Security-Policy = ''' default-src 'none'; img-src 'self' https://stats.mat.services; style-src 'self' 'unsafe-inline'; font-src 'self'; script-src 'self' https://stats.mat.services; form-action 'none'; frame-ancestors 'none'; base-uri 'none'; upgrade-insecure-requests; sandbox allow-same-origin allow-scripts allow-popups allow-popups-to-escape-sandbox ''' # per asset caching [[headers]] for = "/font/*" [headers.values] # a year Cache-Control = "public, max-age=31536000" [[headers]] for = "/image/*" [headers.values] # a month Cache-Control = "public, max-age=2592000" [[headers]] for = "/*.webp" [headers.values] # a month Cache-Control = "public, max-age=2592000" [[headers]] for = "/style/*" [headers.values] # a week Cache-Control = "public, max-age=604800"