Corrigir imagens quebradas no CloudPanel (Nginx)

Os uploads de imagens quebradas em um site de staging em subpasta no CloudPanel (por exemplo, domain.com/staging/) quase sempre têm uma única causa: a configuração padrão do Nginx no CloudPanel inclui regras de reescrita destinadas ao WordPress Multisite que removem o prefixo /staging/ das requisições e procuram suas novas imagens na pasta do site de produção. A solução é um ajuste rápido em duas regras de reescrita no Vhost do seu site e leva cerca de dois minutos.

Por que as imagens recém-enviadas ficam quebradas em um site de staging no CloudPanel?

Quando você cria um site de staging em uma subpasta, suas URLs ficam parecidas com domain.com/staging/. O CloudPanel fornece uma configuração padrão do Nginx com regras de reescrita pensadas para o WordPress Multisite. Essas regras interceptam as requisições à pasta /staging/, removem o prefixo e resolvem o caminho em relação ao diretório do seu site de produção. As imagens recém-enviadas existem apenas na pasta de staging, então o Nginx não as encontra e retorna um link quebrado ou um erro 404 — mesmo que o upload em si tenha funcionado.

A causa está unicamente nas regras de reescrita do Nginx. Não há nada de errado com o WordPress, com a sua biblioteca de mídia ou com os arquivos enviados.

Como corrijo as imagens quebradas no CloudPanel e no Nginx?

Adicione uma exclusão à configuração do Nginx do seu site para que as regras de reescrita do Multisite ignorem a sua pasta de staging. Toda a alteração é feita no editor de Vhost do CloudPanel e leva cerca de dois minutos.

Passo 1: Abra o editor de Vhost do seu site

  1. Faça login no seu painel do CloudPanel.
  2. Clique no site em que os uploads estão falhando.
  3. Abra a aba Vhost no menu superior.

Passo 2: Substitua as regras de reescrita do Multisite

Role até a seção de arquivos estáticos. Ela começa com uma linha como:

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

Dentro desse bloco, exclua estas duas linhas de reescrita padrão:

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

Cole estas linhas atualizadas no lugar delas:

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

O lookahead negativo (?!staging) instrui o Nginx a aplicar a reescrita do Multisite a todas as pastas exceto staging, de modo que as requisições às suas imagens de staging sejam resolvidas corretamente.

Passo 3: Salve e recarregue o Nginx

Clique no botão Save no canto inferior direito. O CloudPanel recarrega o Nginx automaticamente e suas imagens de staging recém-enviadas começam a funcionar imediatamente.

E se a minha pasta de staging não se chamar "staging"?

Se o seu site de staging estiver em uma pasta com outro nome — dev, test ou qualquer outro —, altere a palavra staging nas duas linhas de reescrita para corresponder ao nome real da sua pasta. O restante da regra permanece igual.

Esta correção será sobrescrita?

Sim, se você clicar no botão Reset to Default na aba Vhost. Esse botão restaura a configuração padrão do CloudPanel e remove a exclusão, então você precisaria reaplicar estas duas linhas depois. As atualizações normais do CloudPanel e do WordPress não alteram o seu Vhost salvo.

Perguntas frequentes

Esta alteração afeta o meu site de produção?

Não. A exclusão (?!staging) muda apenas como o Nginx encaminha as requisições dentro da subpasta de staging. As requisições ao seu site de produção continuam correspondendo à regra original do Multisite, sem alterações.

Por que apenas as imagens recém-enviadas ficam quebradas, e não as antigas?

As regras padrão enviam as requisições de staging para a sua pasta de produção. As imagens que você envia depois de criar o site de staging existem apenas na pasta de uploads de staging, então o Nginx não as encontra lá e retorna um erro 404.

Eu uso Apache, não Nginx. Isto se aplica?

Não. O CloudPanel serve os sites com Nginx, então esta correção é específica do Nginx. A sintaxe de reescrita mostrada aqui não funciona em um arquivo .htaccess do Apache.

Preciso reiniciar algo depois de salvar?

Não. O CloudPanel recarrega o Nginx para você quando você clica em Save. A correção fica ativa assim que o recarregamento termina.

Artigos relacionados

Updated on June 8, 2026

Alaa Salama

Autor: Alaa Salama

Trabalho na área de suporte há mais de uma década porque realmente gosto do lado humano da tecnologia. Seja resolvendo um problema complexo no WordPress ou desenvolvendo plugins personalizados e trechos de código para simplificar fluxos de trabalho, meu objetivo é sempre reduzir atritos e ajudar as pessoas a trabalhar de forma mais inteligente. Para mim, não há nada mais gratificante do que ver uma solução que criei melhorar o dia de outra pessoa.

Quando estou offline, geralmente ainda estou “por baixo do capô” de alguma coisa. Sou apaixonado por otimização de servidores e eletrônica DIY, e muitas vezes passo meu tempo livre em projetos de casa inteligente e reparos de hardware. Valorizo especialmente o tempo que passo na minha oficina em casa com meus filhos. Juntos, fazemos de tudo, desde consertos domésticos até projetos criativos, cultivando o prazer de construir coisas feitas para durar.