diff --git a/pulumi/src/cloudflare/record.ts b/pulumi/src/cloudflare/record.ts index f6a97d8..9053a2b 100644 --- a/pulumi/src/cloudflare/record.ts +++ b/pulumi/src/cloudflare/record.ts @@ -20,3 +20,60 @@ export const andymeier = new cloudflare.DnsRecord(config.identifier, { proxied: true, ttl: 1 }, { provider }) + +// DNS records for redirect domains — proxied A records pointing to a dummy IP +// so Cloudflare can intercept requests and apply redirect rulesets. + +const andrewmeierZone = cloudflare.getZoneOutput({ + filter: { + account: { + id: config.cloudflareConfig.accountId + }, + name: 'andrewmeier.dev' + } +}, { provider }) + +new cloudflare.DnsRecord(`${config.identifier}-andrewmeier-root`, { + name: '@', + zoneId: andrewmeierZone.id, + type: 'A', + content: '192.0.2.1', + proxied: true, + ttl: 1 +}, { provider }) + +new cloudflare.DnsRecord(`${config.identifier}-andrewmeier-www`, { + name: 'www', + zoneId: andrewmeierZone.id, + type: 'A', + content: '192.0.2.1', + proxied: true, + ttl: 1 +}, { provider }) + +const meiermadeZone = cloudflare.getZoneOutput({ + filter: { + account: { + id: config.cloudflareConfig.accountId + }, + name: 'meiermade.com' + } +}, { provider }) + +new cloudflare.DnsRecord(`${config.identifier}-meiermade-root`, { + name: '@', + zoneId: meiermadeZone.id, + type: 'A', + content: '192.0.2.1', + proxied: true, + ttl: 1 +}, { provider }) + +new cloudflare.DnsRecord(`${config.identifier}-meiermade-www`, { + name: 'www', + zoneId: meiermadeZone.id, + type: 'A', + content: '192.0.2.1', + proxied: true, + ttl: 1 +}, { provider }) diff --git a/pulumi/src/cloudflare/redirect.ts b/pulumi/src/cloudflare/redirect.ts index 123436e..95ca9b3 100644 --- a/pulumi/src/cloudflare/redirect.ts +++ b/pulumi/src/cloudflare/redirect.ts @@ -19,9 +19,9 @@ new cloudflare.Ruleset(`${config.identifier}-andrewmeier-redirect`, { phase: 'http_request_dynamic_redirect', rules: [{ ref: 'andrewmeier_to_andymeier', - description: 'Redirect andrewmeier.dev to andymeier.dev preserving path', + description: 'Redirect andrewmeier.dev and www.andrewmeier.dev to andymeier.dev preserving path', enabled: true, - expression: '(http.host eq "andrewmeier.dev")', + expression: '(http.host eq "andrewmeier.dev") or (http.host eq "www.andrewmeier.dev")', action: 'redirect', actionParameters: { fromValue: {