web-dev-qa-db-ja.com

301リダイレクトによりBingbotがクラッシュし、リダイレクトの制限に達した

.htaccessファイル内には、次のスクリプトがあります。

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>

どうやら、Bing Webmaster ToolsからFetch as Bingbot関数を使用し、HTTP over HTTPSを使用すると、リダイレクトは発生しますが、bingbotが返すメッセージは次のとおりです。

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>

そして、返されるステータスメッセージは次のとおりです。

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

Google Webmaster Toolsはほぼ問題なく、少なくともWebサイトのアドレスを入力するだけで私のページが見つかります。これはBingには当てはまりません。なぜこれが起こっているのでしょうか?

追加情報:

1-Godaddyでこのドメインをホストする

2-ウェブサイトは約4日間稼働しています。

助けていただければ幸いです!

編集

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

それがリダイレクトに使用しているPHPコードです。また、Bingのhttps URLは機能しますが、httpが機能しないこともわかりました。Bingbotは最初のエラー、2番目のエラー、および前述のエラーをスローします。

1
codeninja

Bingbotは「クラッシュ」していません。 Bingのウェブマスターツール内の「Bingbotとして取得」ツールは、単にリダイレクトに従いません。

bing webmaster help から:

「リダイレクト制限が到達した意味」とは何ですか?
SEO Analyzerツールとは異なり、Fing as Bingbotはリダイレクトに従いません。代わりに、ページがリダイレクトされたことを通知し、サーバーから受信したHTTPヘッダーを表示します。

どのリダイレクトでも同じ通知が表示されます。例えば。 wwwからwwwへのリダイレクト、またはその逆。

Webサイトをクロールおよびインデックスする実際のbingbot doesリダイレクトに従います。ただし、とにかく検索エンジンに正規のURLを送信するだけにしてください。正規のURLがHTTPS://example.comの場合、それはHTTP://example.comではなく、送信するURLです。

Htaccessコードは問題ないように見えますが、少し単純化できますが...

RewriteEngine on

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

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

RewriteCond %{HTTPS} off行は、HTTPSが現在「オフ」であるかどうかを確認し、その条件が満たされた場合にのみリダイレクトします。 HTTPSをオフにするではありません(コメントに記載されています)。

Googleウェブマスターツールはほぼ問題ありません

「Fetch as Google」ツールは、実際にはBingのツールに非常によく似ています。 「成功」を示すことを除いて(つまり、エラー 404などの状態)。ただし、「Success」という単語をクリックすると、Googlebotが受け取った実際の応答が表示されます。これは、「Bingbotとして取得」ツールで表示されるものとまったく同じです。すなわち。リダイレクトの結果としての最終ページではなく、リダイレクト。これは、ブラウザがリダイレクトページに対してsecondリクエストを行うことを除いて、ブラウザが表示するものと同じです。

4
MrWhite