2016-11-15 17 views
0

Я использую Angular JS и для SEO Целью я перенаправляю весь запрос обхода на статическое содержимое 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 и отправил обратно, и переписать снова, и т.д ...

Это исправляется, в вашем 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]