-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnetlify.toml
More file actions
65 lines (57 loc) · 2.53 KB
/
Copy pathnetlify.toml
File metadata and controls
65 lines (57 loc) · 2.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
[build]
# The IndexNow ping runs here rather than inside `npm run build` so local
# builds and `npm run verify` stay offline. The script no-ops on any
# non-production context and never fails the deploy — see scripts/indexnow.mjs.
command = "npm run build && node scripts/indexnow.mjs"
publish = "dist"
[build.environment]
NODE_VERSION = "22.12.0"
# FORM EMAIL NOTIFICATIONS ARE NOT CONFIGURED HERE — AND CANNOT BE.
#
# A previous revision declared `[[notifications]]` blocks in this file to
# route submissions to the studio inbox. Netlify ignored them silently:
# `notifications` is not a supported netlify.toml key. File-based
# configuration accepts only build, plugins, integrations, context,
# redirects, headers, functions, dev, and template
# (https://docs.netlify.com/build/configure-builds/file-based-configuration/).
#
# Form submission notifications are UI-only. Configure them at
# Project configuration > Notifications > Form submission notifications
# (https://docs.netlify.com/manage/forms/notifications/). Because that state
# lives in Netlify and not in this repo, it does NOT travel with a fork,
# a site rename, or a re-link — verify it after any of those.
# The auto-generated Netlify subdomain serves this site's full content on a
# second, crawlable host, which search engines read as duplicate content.
# Redirect it at the edge so matecode.dev is the only origin that answers.
# `force = true` is required: without it the redirect yields to the existing
# static file at that path and never fires.
[[redirects]]
from = "https://www.matecode.dev/*"
to = "https://matecode.dev/:splat"
status = 301
force = true
[[redirects]]
from = "https://mate-code.netlify.app/*"
to = "https://matecode.dev/:splat"
status = 301
force = true
# Hashed static assets (fonts, built JS/CSS) are safe to cache forever.
[[headers]]
for = "/fonts/*"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"
[[headers]]
for = "/_astro/*"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"
# Baseline security headers for every route.
[[headers]]
for = "/*"
[headers.values]
X-Frame-Options = "DENY"
X-Content-Type-Options = "nosniff"
Referrer-Policy = "strict-origin-when-cross-origin"
Permissions-Policy = "camera=(), microphone=(), geolocation=()"
# Regression guard: Spanish is served at the root `/`, not `/es`. Do NOT add
# a redirect from `/es` here — the prior site broke by redirecting Spanish
# traffic to a route that does not exist. See design.md "File-based i18n".