Defekte Bild-Uploads auf CloudPanel (Nginx) beheben

Defekte Bild-Uploads auf einer CloudPanel-Staging-Site im Unterordner (zum Beispiel domain.com/staging/) haben fast immer eine einzige Ursache: Die Standard-Nginx-Konfiguration von CloudPanel enthält Rewrite-Regeln für WordPress Multisite, die das Präfix /staging/ aus den Anfragen entfernen und deine neuen Bilder stattdessen im Ordner der Live-Site suchen. Die Lösung ist eine kurze Anpassung an zwei Rewrite-Regeln im Vhost deiner Site und dauert etwa zwei Minuten.

Warum sind neu hochgeladene Bilder auf einer CloudPanel-Staging-Site defekt?

Wenn du eine Staging-Site in einem Unterordner erstellst, sehen ihre URLs wie domain.com/staging/ aus. CloudPanel liefert eine Standard-Nginx-Konfiguration mit Rewrite-Regeln aus, die für WordPress Multisite gedacht sind. Diese Regeln fangen Anfragen an den Ordner /staging/ ab, entfernen das Präfix und lösen den Pfad gegen das Verzeichnis deiner Live-Site auf. Neu hochgeladene Bilder existieren nur im Staging-Ordner, deshalb findet Nginx sie nicht und liefert einen defekten Link oder einen 404 – obwohl der Upload selbst erfolgreich war.

Die Ursache liegt ausschließlich in den Nginx-Rewrite-Regeln. An WordPress, deiner Mediathek oder den hochgeladenen Dateien liegt es nicht.

Wie behebe ich defekte Bilder bei CloudPanel und Nginx?

Füge der Nginx-Konfiguration deiner Site eine Ausnahme hinzu, damit die Multisite-Rewrite-Regeln deinen Staging-Ordner überspringen. Die gesamte Änderung erfolgt im Vhost-Editor von CloudPanel und dauert etwa zwei Minuten.

Schritt 1: Öffne den Vhost-Editor deiner Site

  1. Melde dich in deinem CloudPanel-Dashboard an.
  2. Klicke auf die Website, auf der die Uploads fehlschlagen.
  3. Öffne den Tab Vhost im oberen Menü.

Schritt 2: Ersetze die Multisite-Rewrite-Regeln

Scrolle zum Abschnitt für statische Dateien. Er beginnt mit einer Zeile wie:

location ~* ^.+.(css|js|jpg|jpeg|gif|png...)$

Lösche innerhalb dieses Blocks diese beiden Standard-Rewrite-Zeilen:

  # WordPress Multisite Subdirectory
  rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 break;
  rewrite ^/[_0-9a-zA-Z-]+(/.*.php)$ $1 break;

Füge an ihrer Stelle diese aktualisierten Zeilen ein:

  # WordPress Multisite Subdirectory (Excluding WP Staging)
  rewrite ^/(?!staging)[_0-9a-zA-Z-]+(/wp-.*) $1 break;
  rewrite ^/(?!staging)[_0-9a-zA-Z-]+(/.*.php)$ $1 break;

Der Negative-Lookahead (?!staging) weist Nginx an, das Multisite-Rewrite auf jeden Ordner außer staging anzuwenden, sodass Anfragen nach deinen Staging-Bildern korrekt aufgelöst werden.

Schritt 3: Speichern und Nginx neu laden

Klicke unten rechts auf die Schaltfläche Save. CloudPanel lädt Nginx automatisch neu, und deine neu hochgeladenen Staging-Bilder funktionieren sofort.

Was, wenn mein Staging-Ordner nicht „staging" heißt?

Wenn deine Staging-Site in einem Ordner mit einem anderen Namen liegt – dev, test oder einem beliebigen anderen –, ändere das Wort staging in beiden Rewrite-Zeilen so, dass es deinem tatsächlichen Ordnernamen entspricht. Der Rest der Regel bleibt gleich.

Wird diese Lösung überschrieben?

Ja, wenn du im Vhost-Tab auf die Schaltfläche Reset to Default klickst. Diese Schaltfläche stellt die Standardkonfiguration von CloudPanel wieder her und entfernt die Ausnahme, sodass du diese beiden Zeilen danach erneut einfügen müsstest. Normale Updates von CloudPanel und WordPress berühren deinen gespeicherten Vhost nicht.

Häufig gestellte Fragen

Wirkt sich diese Änderung auf meine Live-Site aus?

Nein. Die Ausnahme (?!staging) ändert nur, wie Nginx Anfragen innerhalb des Staging-Unterordners weiterleitet. Anfragen an deine Live-Site entsprechen weiterhin unverändert der ursprünglichen Multisite-Regel.

Warum sind nur neu hochgeladene Bilder defekt und nicht ältere?

Die Standardregeln leiten Staging-Anfragen in deinen Live-Ordner um. Bilder, die du nach dem Erstellen der Staging-Site hochlädst, existieren nur im Staging-Upload-Ordner, deshalb findet Nginx sie dort nicht und liefert einen 404.

Ich verwende Apache, nicht Nginx. Gilt das auch?

Nein. CloudPanel liefert Websites mit Nginx aus, daher ist diese Lösung Nginx-spezifisch. Die hier gezeigte Rewrite-Syntax funktioniert nicht in einer Apache-.htaccess-Datei.

Muss ich nach dem Speichern etwas neu starten?

Nein. CloudPanel lädt Nginx für dich neu, wenn du auf Save klickst. Die Lösung ist aktiv, sobald der Neuladevorgang abgeschlossen ist.

Verwandte Artikel

Updated on Juni 8, 2026

Alaa Salama

Autor: Alaa Salama

Ich arbeite seit mehr als einem Jahrzehnt im Support, weil mir die menschliche Seite der Technologie wirklich am Herzen liegt. Ob ich ein komplexes WordPress-Problem löse oder individuelle Plugins und Code-Snippets entwickle, um Arbeitsabläufe zu vereinfachen: Mein Ziel ist immer, Reibung zu reduzieren und Menschen dabei zu helfen, effizienter zu arbeiten. Für mich gibt es nichts Schöneres, als zu sehen, wie eine von mir entwickelte Lösung den Alltag eines anderen Menschen verbessert.

Wenn ich offline bin, stecke ich meistens trotzdem noch „unter der Haube“ von irgendetwas. Ich begeistere mich für Serveroptimierung und DIY-Elektronik und verbringe meine Freizeit oft mit Smart-Home-Projekten und Hardware-Reparaturen. Besonders wertvoll ist mir die Zeit in meiner heimischen Werkstatt mit meinen Kindern. Gemeinsam kümmern wir uns um alles, von Reparaturen im Haushalt bis hin zu kreativen Projekten, und fördern dabei die Freude daran, Dinge zu bauen, die lange halten.