ServerAdmin webmaster@your-part.de ServerName your-part.de ServerAlias www.your-part.de DocumentRoot /opt/yourpart/frontend/dist DirectoryIndex index.html # Frontend statische Dateien AllowOverride None Options -Indexes +FollowSymLinks Require all granted # Fallback für Vue Router FallbackResource /index.html # Proxy-Einstellungen ProxyPreserveHost On ProxyRequests Off RequestHeader set X-Forwarded-Proto "https" AllowEncodedSlashes NoDecode # www Redirect (muss zuerst kommen, aber nicht für Proxy-Pfade) RewriteEngine on RewriteCond %{SERVER_NAME} =your-part.de RewriteCond %{REQUEST_URI} !^/(api|socket\.io|ws)/ RewriteRule ^ https://www.%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] # API-Requests an Backend weiterleiten (Location-Block hat höhere Priorität) ProxyPass "http://localhost:2020/api/" ProxyPassReverse "http://localhost:2020/api/" # Socket.io: WebSocket und HTTP mit Location-Block # WebSocket-Upgrade RewriteEngine on RewriteCond %{HTTP:Upgrade} websocket [NC] RewriteCond %{HTTP:Connection} upgrade [NC] RewriteRule .* "ws://localhost:2020%{REQUEST_URI}" [P,L] # HTTP-Fallback für Polling ProxyPass "http://localhost:2020/socket.io/" ProxyPassReverse "http://localhost:2020/socket.io/" ErrorLog /var/log/apache2/yourpart.error.log CustomLog /var/log/apache2/yourpart.access.log combined HostnameLookups Off UseCanonicalName Off ServerSignature On # SSL-Konfiguration Include /etc/letsencrypt/options-ssl-apache.conf SSLCertificateFile /etc/letsencrypt/live/www.your-part.de/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/www.your-part.de/privkey.pem