2013-06-14 5 views
1

Это, вероятно, очень простая проблема, но для жизни меня я не могу заставить ее работать.grails url mapping для google ajax search

мне нужно перенаправить Google запросы на Ajax код, сгенерированный для возврата шаблон HTML для индексации

У меня есть следующие в моей urlmappings.conf

"/?_escaped_fragment_=$id"(controller:"google",action:"getOfferDetails") 

Однако, если я введу MySite? _escaped_fragment_ = 200 в браузере контроллер не вызывается

Если, однако, я введи mysite_escaped_fragment = 200, то контроллер вызывается и действие выполняется.

Любые предложения были бы весьма полезными.

Благодаря Ash

+0

Когда '' используется в urlMapping компонент рассматривается как необязательный, следовательно, ваши отображения URL по умолчанию для '»/"' (корневой контекст). Когда вы опускаете '?' Во время hiting, он обрабатывает остальную строку запроса и успешно направляет контроллер. Любая конкретная причина, по которой вам нужно «?» В отображении? – dmahapatro

+0

Спасибо за ваш ответ. Причина, по которой я, по крайней мере, думаю, что мне это нужно, заключается в том, что URL-адрес, запрошенный google, будет иметь форму mysite /? _ Escaped_fragment_ = 200 и т. Д. –

+0

Если вы обращаетесь к [ajax обход] (https://developers.google.com/webmasters/ajax-crawling/docs/specification), вы можете увидеть, что ключ параметра - _escaped_fragment_'. '?' - это понятие, используемое для добавления строки запроса к базовому url. – dmahapatro

ответ

1

Вы не можете использовать '?' char в маршруте, то есть он будет проигнорирован. Используйте этот фильтр вместо (поставить этот класс в папку конфигурации ж/FileName CrawlerFilters.groovy):

class CrawlerFilters { 
def filters = { 
    google(controller: '*', action: '*') { 
     before = { 
      boolean isCrawler = webRequest.params._escaped_fragment_ != null 
      if (isCrawler && !request._alreadyForwarded) { 
       request._alreadyForwarded = true 
       forward controller: 'google', action: 'getOfferDetails' 

      } 
     } 
    } 
}` 

 Смежные вопросы

  • Нет связанных вопросов^_^