# quiXzoom Domain Fix — Execution Plan ## CURRENT STATUS SNAPSHOT ### ✅ Working (200 or 301) | Domain | CF ID | Status | Action | |--------|-------|--------|--------| | www.quixzoom.com | EE30B9WM5ZYM7 | 200 | Master site | | quixzoom.se | E1TJEEM1GIZ5YG | 200 | Keep | | quixzoom.co.uk | E2AUYZ274ZT8GF | 200 | Keep | | quixzoom.asia | EHBQ9EIYNM3O0 | 200 | Keep | | quixzoom.it | E1EFRXZ2EWC5A3 | 301→.com | Fix redirect target | | quixzoom.jp | ??? | 301→.com | Fix redirect target | | quixzoom.eu | E15RSE8VAS3N0N | 301→.com | Fix redirect target | | quixzoom.nl | ??? | 301→/markets/nl/ | Fix redirect target | | quixzoom.mx | ??? | 301→.com | Fix redirect target | | quixzoom.lat | ??? | 301→.com | Fix redirect target | | quixzoom.net | ??? | 301→.com | Keep (protects brand) | | quixzoom.org | ??? | 301→.com | Keep (protects brand) | | quixzoom.tech | ??? | 301→.com | Keep (protects brand) | ### ❌ Broken (No DNS) | Domain | Route53 Zone | CF Distribution | Action | |--------|-------------|-----------------|--------| | quixzoom.de | ✅ | ❌ Missing | Create CF + S3 | | quixzoom.fr | ✅ | ❌ Missing | Create CF + S3 | | quixzoom.in | ✅ | ❌ Missing | Create CF + S3 | | quixzoom.be | ✅ | ❌ Missing | Create CF + S3 | | quixzoom.pl | ✅ | ❌ Missing | Create CF + S3 | | quixzoom.no | ✅ | ❌ Missing | Create CF + S3 | | quixzoom.ie | ✅ | ❌ Missing | Create CF + S3 | | quixzoom.at | ✅ | ❌ Missing | Create CF + S3 | | quixzoom.co | ✅ | ❌ Missing | Create CF + S3 | ### ⚠️ 404 (DNS works, no content) | Domain | CF ID | Issue | Action | |--------|-------|-------|--------| | quixzoom.ch | E19E88RO14MJK0 | No S3 content | Upload redirect | | quixzoom.dk | E4IYHJOWOWX8P | No S3 content | Upload redirect | | quixzoom.fi | E17ROIJVAZ5344 | No S3 content | Upload redirect | | quixzoom.es | E1V8LSW21R5DP6 | No S3 content | Upload redirect | --- ## SCRIPTS TO CREATE ### 1. `create-redirect-distribution.sh` Creates CloudFront distribution + S3 bucket for redirect ```bash #!/bin/bash DOMAIN=$1 TARGET=$2 BUCKET="quixzoom-redirect-${DOMAIN//./-}" # Create S3 bucket aws s3 mb s3://$BUCKET --region us-east-1 # Configure as website with redirect aws s3 website s3://$BUCKET --index-document index.html --error-document index.html # Upload redirect HTML cat > /tmp/redirect.html << EOF

Redirecting to $TARGET...

EOF aws s3 cp /tmp/redirect.html s3://$BUCKET/index.html # Create CloudFront distribution ( OAI + S3 origin ) # ... CloudFront API call ... echo "Created: $DOMAIN → $TARGET" ``` ### 2. `fix-route53.sh` Adds Route53 A/AAAA alias records ```bash #!/bin/bash DOMAIN=$1 CF_ID=$2 ZONE_ID=$(aws route53 list-hosted-zones --query "HostedZones[?Name=='$DOMAIN.'].Id" --output text | sed 's|/hostedzone/||') # Get CloudFront domain CF_DOMAIN=$(aws cloudfront get-distribution --id $CF_ID --query 'Distribution.DomainName' --output text) # Create A + AAAA alias records aws route53 change-resource-record-sets --hosted-zone-id $ZONE_ID --change-batch "{ Changes: [ { Action: UPSERT, ResourceRecordSet: { Name: $DOMAIN, Type: A, AliasTarget: { HostedZoneId: Z2FDTNDATAQYW2, DNSName: $CF_DOMAIN, EvaluateTargetHealth: false } } }, { Action: UPSERT, ResourceRecordSet: { Name: $DOMAIN, Type: AAAA, AliasTarget: { HostedZoneId: Z2FDTNDATAQYW2, DNSName: $CF_DOMAIN, EvaluateTargetHealth: false } } } ] }" ``` ### 3. `upload-redirect.sh` Uploads redirect HTML to existing 404 buckets ```bash #!/bin/bash DOMAIN=$1 TARGET=$2 BUCKET="quixzoom-redirect-${DOMAIN//./-}" cat > /tmp/redirect.html << EOF quiXzoom — Redirecting

quiXzoom

Redirecting to $TARGET...

EOF aws s3 cp /tmp/redirect.html s3://$BUCKET/index.html --content-type "text/html" ``` --- ## REDIRECT TARGETS (Proposed) | Domain | Redirect Target | Notes | |--------|----------------|-------| | quixzoom.de | https://www.quixzoom.com/de-de/ | German locale | | quixzoom.fr | https://www.quixzoom.com/fr-fr/ | French locale | | quixzoom.in | https://www.quixzoom.com/hi-in/ | Hindi locale | | quixzoom.be | https://www.quixzoom.com/nl-be/ | Dutch (Belgium) | | quixzoom.pl | https://www.quixzoom.com/pl-pl/ | Polish locale | | quixzoom.no | https://www.quixzoom.com/nb-no/ | Norwegian locale | | quixzoom.ie | https://www.quixzoom.com/en-ie/ | English (Ireland) | | quixzoom.at | https://www.quixzoom.com/de-at/ | German (Austria) | | quixzoom.co | https://www.quixzoom.com/en-co/ | English (Colombia) | | quixzoom.ch | https://www.quixzoom.com/de-ch/ | German (Swiss) | | quixzoom.dk | https://www.quixzoom.com/da-dk/ | Danish locale | | quixzoom.fi | https://www.quixzoom.com/fi-fi/ | Finnish locale | | quixzoom.es | https://www.quixzoom.com/es-es/ | Spanish locale | | quixzoom.it | https://www.quixzoom.com/it-it/ | Italian locale | | quixzoom.jp | https://www.quixzoom.com/ja-jp/ | Japanese locale | | quixzoom.mx | https://www.quixzoom.com/es-mx/ | Spanish (Mexico) | | quixzoom.lat | https://www.quixzoom.com/es-419/ | Spanish (LatAm) | | quixzoom.nl | https://www.quixzoom.com/nl-nl/ | Dutch locale | | quixzoom.eu | https://www.quixzoom.com/en-eu/ | English (EU) | | quixzoom.se | https://www.quixzoom.com/sv-se/ | Swedish locale | | quixzoom.co.uk | https://www.quixzoom.com/en-gb/ | English (UK) | | quixzoom.asia | KEEP | Multi-language hub | | quixzoom.net | https://www.quixzoom.com/ | Brand protection | | quixzoom.org | https://www.quixzoom.com/ | Brand protection | | quixzoom.tech | https://www.quixzoom.com/ | Brand protection | --- ## FOOTER REDESIGN ### Current (Broken) ``` EN | 🇸🇪 Sverige | 🇳🇱 NL | 🇹🇭 TH | 🇳🇬 NG | 🇰🇪 KE ``` ### New (Microsoft-Style) ``` 🌍 Region: Europe | Americas | Asia-Pacific | Africa 🇸🇪 Sweden 🇺🇸 United States 🇯🇵 Japan 🇳🇬 Nigeria* 🇬🇧 UK 🇲🇽 Mexico 🇰🇷 South Korea 🇰🇪 Kenya* 🇩🇪 Germany* 🇧🇷 Brazil* 🇹🇭 Thailand 🇳🇱 Netherlands* 🇨🇦 Canada* 🇻🇳 Vietnam 🇫🇷 France* 🇮🇩 Indonesia 🇮🇹 Italy* 🇮🇳 India 🇪🇸 Spain* 🇦🇺 Australia* 🇨🇭 Switzerland* 🇸🇬 Singapore* 🇩🇰 Denmark* 🇲🇾 Malaysia 🇫🇮 Finland* 🇵🇭 Philippines* 🇧🇪 Belgium* 🇹🇼 Taiwan 🇵🇱 Poland* 🇭🇰 Hong Kong* 🇳🇴 Norway* 🇮🇪 Ireland* 🇦🇹 Austria* 🇨🇴 Colombia* * Coming soon — Notify me 🌐 Language: English | Svenska | Deutsch | Nederlands | Français | Español | Italiano | 日本語 | 한국어 | 中文 | हिन्दी | Bahasa Indonesia | Bahasa Melayu | Tiếng Việt | ไทย ``` --- ## NEXT STEPS 1. **Get approval from Erik/Johan** on redirect targets 2. **Create S3 buckets** for missing domains 3. **Create CloudFront distributions** for missing domains 4. **Add Route53 records** for missing domains 5. **Upload redirect HTML** to 404 domains 6. **Update footer** on quixzoom.com 7. **Update footer** on quixzoom.asia 8. **Update footer** on quixzoom.se 9. **Update footer** on quixzoom.co.uk 10. **Test all domains** return proper status --- ## ESTIMATED TIME - Script creation: 2 hours - S3/CF creation (9 domains): 3 hours - Route53 updates: 1 hour - Redirect uploads (4 domains): 30 min - Footer updates (4 sites): 2 hours - Testing: 1 hour - **Total: ~10 hours** ## ESTIMATED COST - Route53 zones: Already paid ($25/mo for 25 zones) - CloudFront distributions: ~$50/mo additional - S3 buckets: ~$5/mo - Data transfer: ~$20/mo - **Total: ~$75/mo additional**