AJAX rastreable con _escaped_fragment_ en htaccess

¡Hola compañeros desarrolladores!

Estamos a punto de desarrollar la primera fase de nuestra aplicación web ajax. En nuestra aplicación, usamos fragmentos hash como:

http://ourdomain.com/#!list=last_ads&order=date 

Entiendo que Google buscará esta URL y realizará una solicitud al servidor de esta forma:

 http://ourdomain.com/?_escaped_fragment_=list=last_ads?order=date&direction=desc 

todo es perfecto, excepto …

Me gustaría enrutar este tipo de solicitud a otro script

al igual que:

 RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$ RewriteRule ^$ /webroot/crawler.php$1 [L] 

El problema es que cuando bash print_r ($ _ REQUEST) en crawler.php obtengo solo:

 Array ( [_escaped_fragment_] => list=last_ads?order=date [direction] => desc ) 

lo que me gustaría obtener es

 Array ( [list] => last_ads [order] => date [directions] => des ) 

Sé que podría usar php para romper aún más el primer argumento, pero no quiero hacerlo;)

por favor avise

=============================================== == EDITAR … algunas correcciones en texto y lógica

Olvidó su directiva QSA (todos se saltaron el punto = D)

 RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$ RewriteRule ^$ /webroot/crawler.php%1 [QSA,L] 

Por cierto, tu $1 está muy equivocado … inútil porque no se refiere a nada. Entonces esto debería ser:

 RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$ RewriteRule ^$ /webroot/crawler.php [QSA,L] 

Dime si esto funciona

Si no me equivoco.

 RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$ RewriteRule ^$ /webroot/crawler.php?%1 [L] 

Tal vez sea obvio para ti, pero en la documentación hablamos sobre los caracteres que se han escapado: configura tu servidor para manejar las solicitudes de URL que contienen

El rastreador escapa de ciertos caracteres en el fragmento durante la transformación. Para recuperar el fragmento original, asegúrese de eliminar el rest de los% XX caracteres en el fragmento. Más específicamente,% 26 debería convertirse en &,% 20 debería convertirse en un espacio,% 23 debería convertirse en #, y% 25 debería convertirse en%, y así sucesivamente.

Aquí hay una solución que proporciona una URL enrutable y parámetros de consulta configurados correctamente para el procesamiento en el script del lado del servidor.

Ejemplo: si desea que http://yoursite.com/#!/product/20 convierta en http://yoursite.com/crawler/product/20

Primero en .htaccess

 RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$ RewriteRule ^$ /crawler/index.php?_frag=%1 [L] 

Necesitamos deshacernos del _escaped_fragment_ en la URL y reemplazarlo por algo diferente, ejemplo: _frag para que el servidor web (Apache) no entre en reescrituras circulares.

Segundo en crawler/index.php

  

En el trabajo de htacess en el host virtual no funciona, entonces lo agrego en “directorio”

  RewriteEngine On RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$ RewriteRule ^$ /crawler/index.php?_frag=%1 [L]