2016-11-15 164 views
0

我使用Angular JSSEO目的我將所有抓取請求重定向到靜態html頁面內容。.htaccess重定向到無限循環

我使用Apache服務器,以便在.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] 

但它趨於無窮大重定向。

請轉到這裏:http://www.redirect-checker.org/index.php並輸入鏈接爲:http://templatic.net/test/job_category/mobile並選擇搜索引擎作爲Googlebot所以它會重定向到這樣的:

enter image description here

所以,請幫我制止這種...

回答

0

一旦有任何RewriteCond匹配,並且請求test/job_category/mobile被重寫爲test/snapshots/job_category/mobile.html,則重寫的請求將被交還給URL解析引擎,規則集將從頭開始再次運行。

這一次,它將再次匹配HTTP_USER_AGENT,並改寫爲test/snapshots/snapshots/job_category/mobile.html.html,並送回來,並再次被改寫,等等

的解決辦法是,在你的重寫規則,防止重寫如果要求已開始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]