Настройка .htaccess для успешного просмотра гуглоботом ajax-содержимого

Судя по этим ответам в справке для вебмастеров от гугла, гуглобот может нормально индексировать ajax-контент, если правильно использовать якорные ссылки ('#!'), и настроить перенаправление для адресов, содержащих _escaped_fragment_= в запросе.

В качестве сервера использую Apache с mod_rewrite, для перенаправления в .htaccess записано следующее правило:
RewriteEngine on

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule \?_escaped_fragment_=(.*) snapshots/snap_%1.html [NC,R=301,L]


Проблема в том, что такое правило работает не так, как предполагалось: RewriteRule не отрабатывает, и перенаправления не происходит.

В случае такого правила:
RewriteEngine on

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^(.*)$ mysite.com/snapshots/snap_%1.html [NC,R=301,L]


url превращается в mysite.com/snapshots/snap_ACHORLINK.html?_escaped_fragment_=ACHORLINK для ссылки mysite.com/?_escaped_fragment_=ACHORLINK, что приводит к циклическим перенаправлениям.

Если кто-то объяснит, где закралась ошибка, буду очень благодарен.
  • Вопрос задан
  • 4363 просмотра
Решения вопроса 1
Goder
@Goder Автор вопроса
Спасибо ребятам с stackoverflow, ответ найден. :)
Если кто-то столкнется с такой с подобной ситуацией: использовать нужно второе правило, добавив знак '?' после .html в строке подстановки. Результат будет такой:

RewriteEngine on

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^(.*)$ mysite.com/snapshots/snap_%1.html [NC,R=301,L]


Кроме того, советуют убрать редирект. Окончательный результат:

RewriteEngine on

RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^(.*)$ mysite.com/snapshots/snap_%1.html [NC,L]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
SMART TECHNOLOGIES Костанай
от 35 000 до 55 000 руб.
TechnoDiasoft Москва
от 70 000 до 150 000 руб.
FinPay Санкт-Петербург
от 90 000 до 120 000 руб.