5.3 KiB
5.3 KiB
Claude v2 Implementation mit Domain-Konfiguration
✅ Durchgeführte Verbesserungen
1. Domain-Konfiguration Integration
- ✅ config/domains.php Support: SubdomainResolver verwendet zentrale Domain-Konfiguration
- ✅ Alle Domain-Typen unterstützt: main, main-shop, crm, portal, checkout, user-shop
- ✅ Reserved Subdomains: Verhindert Konflikte mit System-Subdomains
- ✅ Environment-Variables: Flexible Konfiguration über .env
2. Erweiterte SubdomainResolver Middleware
- ✅ 6 Domain-Handler: Spezialisierte Handler für jeden Domain-Typ
- ✅ Intelligente Domain-Parsing: Exakte Matches vor Pattern-Matching
- ✅ Session-Domain-Auto-Config: Automatische Session-Domain basierend auf Host
- ✅ Default-Shop aus Config: Verwendet
default_user_shopaus domains.php
3. RouteServiceProvider Optimierung
- ✅ Hotfix entfernt: Keine DomainContext-Abhängigkeit mehr
- ✅ Alle Domain-Routen geladen: Vereinfachter, robuster Ansatz
- ✅ Debug-Logging: Bessere Nachverfolgbarkeit
🚀 Implementation
Schritt 1: Neue Middleware kopieren
cp dev/subdomain-optimization-claude-v2/src/Http/Middleware/SubdomainResolver.php app/Http/Middleware/
Schritt 2: Middleware in Kernel registrieren
File: app/Http/Kernel.php
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// ⚡ WICHTIG: Nach StartSession, vor VerifyCsrfToken
\App\Http\Middleware\SubdomainResolver::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
// ... rest of middleware
],
];
Schritt 3: Cache löschen
php artisan config:clear
php artisan route:clear
php artisan view:clear
🧪 Testing aller Domain-Typen
1. Main Domain (mivita.care)
curl -H "Host: mivita.care" http://localhost/
# Erwartung: Corporate Website, keine Shop-Daten
2. Shop Domain (mivita.shop)
curl -H "Host: mivita.shop" http://localhost/
# Erwartung: Default Shop (aloevera) geladen
3. User Shop (testuser.mivita.care)
curl -H "Host: testuser.mivita.care" http://localhost/
# Erwartung: UserShop 'testuser' geladen (falls existiert)
4. CRM (my.mivita.care)
curl -H "Host: my.mivita.care" http://localhost/
# Erwartung: CRM Interface, keine Shop-Daten
5. Portal (in.mivita.care)
curl -H "Host: in.mivita.care" http://localhost/
# Erwartung: Partner Portal, keine Shop-Daten
6. Checkout (checkout.mivita.care)
curl -H "Host: checkout.mivita.care" http://localhost/
# Erwartung: Checkout Interface, Shop-Session bleibt erhalten
7. Reserved Subdomain (www.mivita.care)
curl -H "Host: www.mivita.care" http://localhost/
# Erwartung: Redirect zu mivita.care
8. Unknown Domain
curl -H "Host: unknown.example.com" http://localhost/
# Erwartung: Redirect zu mivita.care
📋 Domain-Mapping Übersicht
| Host | Typ | Session Domain | Shop Data | Routes |
|---|---|---|---|---|
mivita.care |
main | .mivita.care |
❌ None | main.php |
mivita.shop |
main-shop | .mivita.shop |
✅ aloevera | shop.php |
{user}.mivita.care |
user-shop | .mivita.care |
✅ Dynamic | user-shop.php |
my.mivita.care |
crm | .mivita.care |
❌ None | crm.php |
in.mivita.care |
portal | .mivita.care |
❌ None | portal.php |
checkout.mivita.care |
checkout | .mivita.care |
✅ Preserved | checkout.php |
🔧 Weitere Konfiguration
config/domains.php anpassen:
'domains' => [
'shop' => [
'host' => env('APP_DOMAIN', 'mivita') . env('APP_TLD_SHOP', '.shop'),
'type' => 'main-shop',
'default_user_shop' => 'your-default-shop', // Anpassen!
],
// ... weitere Domains
],
Environment Variables prüfen:
APP_DOMAIN=mivita
APP_TLD_CARE=.care
APP_TLD_SHOP=.shop
APP_PROTOCOL=https://
APP_PRE_URL_CRM=my.
APP_PRE_URL_PORTAL=in.
APP_URL_CHECKOUT=checkout.
✅ Funktions-Checkliste
Nach der Implementation sollten folgende Features funktionieren:
- User-Shop Subdomains:
testuser.mivita.carelädt korrekte UserShop-Daten - Main Shop:
mivita.shoplädt Default-Shop aus config - Main Care:
mivita.carezeigt Corporate Website ohne Shop-Daten - CRM/Portal:
my.mivita.careundin.mivita.carefunktionieren - Checkout:
checkout.mivita.carebehält Shop-Session - Reserved Redirects:
www.mivita.care→mivita.care - Unknown Redirects: Fremde Domains →
mivita.care - Session Domains: Korrekte
.mivita.care/.mivita.shopKonfiguration - URL Generation:
route()Helper funktioniert auf allen Domains - Warenkorb: Funktioniert auf User-Shops und Main-Shop
- Route Parameter: Subdomain-Parameter werden korrekt entfernt
🎯 Nächste Schritte nach Implementation
- Hotfix-Code entfernen: Siehe
HOTFIX_APPLIED.mdfür Anleitung - Domain-spezifische Features reaktivieren: Legal-URL-Redirects, etc.
- Monitoring: Domain-Resolution-Logging aktivieren
- Performance-Optimierung: Bei Bedarf Domain-Caching hinzufügen