6de2455917
- Added GLOBAL_MARKETS_TITLE to all translation files - Updated footer with 12 markets (4 active + 8 upcoming) - Translated market section to: zh-cn, zh-tw, ja, ko, th, vi, id, ms, hi - Built and deployed to production - CloudFront invalidation: I3RTMXVFDJXWLG3SYX208OP1CC
8.1 KiB
8.1 KiB
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
#!/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
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="refresh" content="0; url=$TARGET">
<link rel="canonical" href="$TARGET">
</head>
<body>
<p>Redirecting to <a href="$TARGET">$TARGET</a>...</p>
</body>
</html>
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
#!/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
#!/bin/bash
DOMAIN=$1
TARGET=$2
BUCKET="quixzoom-redirect-${DOMAIN//./-}"
cat > /tmp/redirect.html << EOF
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="refresh" content="0; url=$TARGET">
<link rel="canonical" href="$TARGET">
<title>quiXzoom — Redirecting</title>
<style>body{font-family:sans-serif;text-align:center;padding:40px;color:#666}</style>
</head>
<body>
<h1>quiXzoom</h1>
<p>Redirecting to <a href="$TARGET">$TARGET</a>...</p>
<script>window.location.href="$TARGET";</script>
</body>
</html>
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
- Get approval from Erik/Johan on redirect targets
- Create S3 buckets for missing domains
- Create CloudFront distributions for missing domains
- Add Route53 records for missing domains
- Upload redirect HTML to 404 domains
- Update footer on quixzoom.com
- Update footer on quixzoom.asia
- Update footer on quixzoom.se
- Update footer on quixzoom.co.uk
- 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