Estou tentando usar o redirecionamento 301 do GoDaddy, chamado de encaminhamento de domínio. Eu configurei o encaminhamento DomainA.example
para DomainB.example
como 301 "tipo".
Percebi que DomainA.example
ainda está indexado no Google após ~ 6 meses e tem um título em SERP de DomainB.example
. Quando clico no Google ou visito no navegador, ele é redirecionado para DomainB.example
, para que tudo esteja bem da perspectiva do UX.
Eu inspecionei DomainA.example
com a ferramenta http://www.webconfs.com/redirect-check.php e descobri que http://DomainA.example/
realmente redireciona para http://DomainA.example/MmSWZ/
. E esse URL supostamente redireciona para DomainB.example
. O que é isso?
Se eu verificar novamente alguns minutos depois na mesma ferramenta, eu vejo http://DomainA.example/
redireciona para http://DomainA.example/MpppZ/
, então é uma URL intermediária aleatória única sempre que parece!
Tenho certeza que é ruim para o SEO. Como faço para corrigir isso?
Eu tive esse problema ocorrer em vários domínios diferentes controlados pelo GoDaddy. Tentei várias vezes entrar em contato com o suporte do GoDaddy para resolver o problema sem sorte. Por fim, decidi resolver o problema sozinho porque o GoDaddy parece sem noção para o problema deles.
Aqui está minha solução: Adicione este código PHP ao topo da sua página de erro 404. Para o WordPress, adicione este arquivo 404.php do seu tema:
<?php
/* GoDaddy 404 Redirects FIX - by Daniel Chase - https://riseofweb.com */
$currURL = $_SERVER['REQUEST_URI'];
$CheckRedirectError1 = substr($currURL, -6);
$CheckRedirectError2 = substr($currURL, 0, 7);
$CheckRedirectError = false;
if (preg_match("/^[a-zA-Z]{5}\/$/",$CheckRedirectError1)){
$CheckRedirectError = $CheckRedirectError1;
}else if (preg_match("/^\/[a-zA-Z]{5}\/$/",$CheckRedirectError2)){
$CheckRedirectError = substr($CheckRedirectError2, 1);
}
if($CheckRedirectError){
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$redirectTo = str_replace($CheckRedirectError, '', $currURL);
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . $protocol . $_SERVER['HTTP_Host'] . $redirectTo);
exit();
}
?>
O script verifica os caracteres aleatórios e os remove e depois os redireciona para a página apropriada. Pode ser necessário adicionar algumas exceções ou modificar o script para atender às suas necessidades.
Para fazer um redirecionamento 301, é necessário que haja um servidor no local especificado para responder à solicitação de conteúdo do navegador com um local como:
HTTP/1.1 301 Moved Permanently
Location: http://domainb.example
Isso é necessário porque o servidor precisa responder ao navegador por HTTP com uma resposta. Esse tipo de redirecionamento não pode ser feito com o DNS porque esse não é o objetivo do DNS.
Você pode considerar configurar um registro CNAME
para DomainA.example
com DomainB.example
como o valor. Sua zona DNS pode se parecer com:
NAME TYPE VALUE
--------------------------------------------------
www.domaina.example. CNAME www.domainb.example.
www.domainb.example. A 192.0.2.23
Você também precisaria garantir que todos os registros MX
(informa aos servidores de e-mail para onde enviar email para um domínio) de DomainA.example
sejam atualizados para apontar para o Host em DomainB.example
para que o email possa ser roteado em conformidade (se necessário).