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
235 lines
8.1 KiB
Markdown
235 lines
8.1 KiB
Markdown
# 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
|
|
<!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
|
|
|
|
```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
|
|
<!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
|
|
|
|
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**
|