2016-11-15 10 views
0

私はAngular JSを使用しており、SEOの目的ではすべてのクロール要求を静的なHTMLページのコンテンツにリダイレクトしています。.htaccessリダイレクトは無限ループになります

RewriteEngine On 
RewriteCond %{HTTP_USER_AGENT} Googlebot [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} facebookexternalhit [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} Twitterbot [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} Baiduspider [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} MetaURI [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} mediawords [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} FlipboardProxy [NC,OR] 
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*?)\/*$ 
RewriteRule ^(.*)$ snapshots/$1.html [R=301,L] 

をしかし、それは無限のリダイレクトに行く:

.htaccessファイルに私が書かれているので、私はApacheサーバーを使用しています。

ここで後藤ください:だから

答えて

0
...これを停止するために私を助けてください

enter image description here

Googlebotとしてhttp://templatic.net/test/job_category/mobileを選択し、検索エンジンので、それが好きにリダイレクトします:http://www.redirect-checker.org/index.phpとしてリンクを入力してください

RewriteCondが一致し、要求test/job_category/mobiletest/snapshots/job_category/mobile.htmlに書き換えられると、書き換えられた要求はURL解析エンジンに戻され、ルールセットは最初から実行されます。

今回、それが再びHTTP_USER_AGENTに一致し、再びtest/snapshots/snapshots/job_category/mobile.html.htmlに書き換え、および送信され、そして、再び書き換えることなど...

修正プログラムは、あなたのRewriteRuleで、場合書き換えないようにすることですリクエストは既にsnapshots/で始まります。

RewriteEngine On 
RewriteCond %{HTTP_USER_AGENT} Googlebot [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} facebookexternalhit [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} Twitterbot [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} Baiduspider [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} MetaURI [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} mediawords [NC,OR] 
RewriteCond %{HTTP_USER_AGENT} FlipboardProxy [NC,OR] 
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*?)\/*$ 
RewriteRule ^(?!snapshots/)(.*)$ snapshots/$1.html [R=301,L] 
関連する問題