web-dev-qa-db-fra.com

301 redirection provoquant un crash de Bingbot, limite de redirection atteinte

Dans mon fichier .htaccess, j'ai le script suivant:

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^([^\.]+)$ $1.php [NC,L]
</IfModule>

Apparemment, si j'utilise la fonction Fetch as Bingbot de Bing Webmaster Tools et que j'utilise HTTP sur HTTPS, la redirection se produit, mais le message renvoyé par le bingbot est:

HTTP/1.1 301 Moved Permanently
Connection: Keep-Alive
Date: Thu, 02 Jan 2014 22:56:55 GMT
Keep-Alive: timeout=5
Content-Length: 235
Content-Type: text/html; charset=iso-8859-1
Location: https://hsoto.me/index2.php
Server: Apache mod_fcgid/2.3.10-dev



<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="https://hsoto.me/index2.php">here</a>.</p>
</body></html>

Et le message d'état qu'il renvoie est le suivant:

URL:  http://hsoto.me/index2.php
Status:  Redirection limit reached.

Google Webmaster Tools est à peu près correct, et ma page est même trouvée en tapant au moins l'adresse du site. Ce n'est pas le cas sur Bing. Une idée pourquoi cela pourrait se produire?

Information additionnelle:

1-Hébergement de ce domaine avec Godaddy

2-Website est en ligne depuis environ 4 jours.

L'aide serait appréciée!

EDIT

function detectIElessThan10(){
     if(preg_match('/(?i)msie [2-9]/',$_SERVER['HTTP_USER_AGENT'])){
        header("Location:https://www.hsoto.me/nosupport");
    } 
}

C'est le code PHP que j'utilise pour rediriger. J'ai aussi découvert que l'URL https sur Bing fonctionnait, mais que http ne fonctionnait pas, Bingbot apportait le premier, le second et renvoyait l'erreur mentionnée précédemment.

1
codeninja

Bingbot n'est pas "crash". L'outil "Fetch as Bingbot" dans les outils pour les webmasters de Bing ne suit tout simplement pas les redirections:

De aide du webmaster bing :

QUE SIGNIFIE "LIMITE DE REDIRECTION ATTEINT"?
Contrairement à l'outil SEO Analyzer, Fetch as Bingbot ne suit pas les redirections. Au lieu de cela, il vous indiquera que la page a généré une redirection et vous montre les en-têtes HTTP reçus de votre serveur.

Vous obtenez le même avis pour toute redirection. par exemple. redirection non-www vers www, ou inversement.

Le bingbot qui analyse et indexe votre site Web fait suivent les redirections. Mais vous ne devriez de toute façon que soumettre l'URL canonique aux moteurs de recherche. Si l'URL canonique est HTTPS://example.com, il s'agit de l'URL à soumettre, et non de HTTP://example.com.

Votre code htaccess a l'air correct, même s'il pourrait être un peu simplifié ...

RewriteEngine on

RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_Host}%{REQUEST_URI} [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

La ligne RewriteCond %{HTTPS} off vérifie simplement si HTTPS est actuellement "désactivé" et ne sera redirigé que si cette condition est remplie. Ce n'est pas désactiver HTTPS (comme mentionné dans les commentaires).

Google Webmaster Tools est presque parfait

L'outil "Fetch as Google" est en réalité très similaire à l'outil Bing. Sauf qu'il indique "Success" (c'est-à-dire no error comme un état 404, etc.). Toutefois, si vous cliquez sur le mot "Succès", la réponse que Googlebot a reçue ... s'affiche, ce qui correspond exactement à ce que vous voyez dans l'outil "Fetch as Bingbot". c'est à dire. la redirection, pas la dernière page à la suite de la redirection. Ceci est identique à ce que voit votre navigateur, sauf que le navigateur fait une demande seconde pour la page redirigée.

4
MrWhite