J'essaie d'utiliser la redirection 301 de GoDaddy, nommée transfert de domaine. J'ai configuré le transfert DomainA.example
vers DomainB.example
comme 301 "type".
J'ai remarqué que DomainA.example
était toujours indexé dans Google au bout de ~ 6 mois et qu'il avait un titre dans SERP sur DomainB.example
. Lorsque je clique dessus sur Google ou que je visite dans le navigateur, il redirige vers DomainB.example
, donc tout va bien du point de vue de l'expérience utilisateur.
J'ai inspecté DomainA.example
avec l'outil http://www.webconfs.com/redirect-check.php et découvert que http://DomainA.example/
redirige en fait vers http://DomainA.example/MmSWZ/
. Et ensuite, cette URL est censée rediriger vers DomainB.example
. Qu'est-ce que c'est?
Si je vérifie à nouveau quelques minutes plus tard sur le même outil, je vois que http://DomainA.example/
est redirigé vers http://DomainA.example/MpppZ/
, il s’agit donc d’une adresse URL unique au milieu, chaque fois que cela paraît!
Je suis sûr que c'est mauvais pour le référencement. Comment je le répare?
J'ai eu ce problème sur plusieurs domaines différents contrôlés par GoDaddy. J'ai tenté à plusieurs reprises de contacter le support technique de GoDaddy pour résoudre le problème sans succès. En fin de compte, j'ai décidé de résoudre le problème moi-même, car GoDaddy ne semble pas au courant de leur problème.
Voici ma solution: Ajoutez ce code PHP en haut de votre page d'erreur 404. Pour WordPress, ajoutez ceci le fichier 404.php de votre thème:
<?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();
}
?>
Le script recherche les caractères aléatoires et les supprime, puis redirige vers la page appropriée. Vous devrez peut-être ajouter des exceptions ou modifier le script pour répondre à vos besoins.
Pour effectuer une redirection 301, il doit exister un serveur à l'emplacement spécifié pour répondre à la demande de contenu du navigateur avec un emplacement du type:
HTTP/1.1 301 Moved Permanently
Location: http://domainb.example
Cela est nécessaire car le serveur doit répondre au navigateur via HTTP avec une réponse. Ce type de redirection ne peut pas être effectué avec DNS car ce n’est pas l’objet de DNS.
Vous pouvez envisager de définir un enregistrement CNAME
pour DomainA.example
avec DomainB.example
comme valeur. Votre zone DNS pourrait ressembler à quelque chose comme:
NAME TYPE VALUE
--------------------------------------------------
www.domaina.example. CNAME www.domainb.example.
www.domainb.example. A 192.0.2.23
Vous devez également vous assurer que tous les enregistrements MX
(indique aux serveurs de messagerie où envoyer un courrier électronique pour un domaine) pour DomainA.example
sont mis à jour pour qu'ils pointent vers l'hôte à DomainB.example
afin que le courrier électronique puisse être routé. en conséquence (si nécessaire).