Resolver problemas
Redirecionamento feito no cPanel não funciona
O cPanel guarda os redirecionamentos através de regras no .htaccess. Se ficarem depois de um bloco que já processa o pedido, algumas rotas podem nunca chegar a executá-las. Verifique o ficheiro gerado antes de alterar a ordem.
A existência de regras do WordPress ou do Joomla não demonstra um conflito. Teste primeiro o URL com curl -I, verifique o código e o cabeçalho Location, confirme a entrada em Current Redirects e abra o .htaccess do DocumentRoot correto.
Se a resposta e a ordem mostrarem que um bloco da aplicação consome o pedido antes de chegar ao redirecionamento, mova apenas a regra afetada para que fique antes desse bloco. Conserve uma cópia e respeite os blocos geridos pelo WordPress, pelo LiteSpeed, por plugins e pela segurança.
Por exemplo, um redirecionamento colocado depois do bloco do WordPress pode não ser executado para rotas que esse bloco envia para index.php:
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress RewriteCond %{HTTP_HOST} ^antiguo\.ejemplo(?::[0-9]+)?$ [NC] RewriteCond %{THE_REQUEST} \s/+([^?\s]*) RewriteRule ^ https://nuevo.ejemplo/%1 [R=301,L,NE]
Se tiver confirmado essa interceção, coloque o redirecionamento fora do bloco gerido e antes dele:
RewriteEngine On RewriteCond %{HTTP_HOST} ^antiguo\.ejemplo(?::[0-9]+)?$ [NC] RewriteCond %{THE_REQUEST} \s/+([^?\s]*) RewriteRule ^ https://nuevo.ejemplo/%1 [R=301,L,NE] # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
RewriteEngine On deve aparecer nesse contexto antes das regras que dele precisam, mas não tem de ser literalmente a primeira linha do ficheiro. Para forçar o HTTPS, use de preferência cPanel > Domains > Force HTTPS Redirect em vez de criar um redirecionamento manual.
Os domínios do exemplo são marcadores: substitua a origem e o destino pelos seus. A condição de host limita a regra ao domínio antigo; a rota retirada do pedido original conserva os seus caracteres codificados e a query string é mantida. Não adicione NE a outras regras sem rever como constroem o destino.
Teste a página inicial, uma rota interna, uma com acentos ou caracteres codificados e outra com parâmetros. Verifique também se o domínio novo não entra num ciclo. Antes de fixar a alteração como 301 permanente, pode usar 302 num teste controlado; depois, confirme a resposta sem depender de um redirecionamento guardado pelo navegador. Se curl -I der um resultado diferente do navegador, compare com um pedido GET: nem todas as aplicações respondem da mesma forma a HEAD.
Também lhe pode ser útil
- Diagnóstico avançado dos registos de um domínio Verifique a delegação, consulte cada servidor DNS autoritativo e compare depois os registos e serviç...
- O domínio mostra outro site, conteúdo incorreto ou redireciona para outro domínio Descubra porque é que um domínio abre outro site revendo o DNS, a raiz de documentos, os redireciona...
- 500 Internal Server Error Diagnostique um erro 500 a partir do pedido e do registo do mesmo instante antes de rever o PHP, o ....
- Algumas bases de dados não aparecem no phpMyAdmin Verifique se a base pertence à conta e peça a revisão das permissões ou do mapa do cPanel quando apa...
Algo não bate certo ou mudou? Diga-nos e revemos.