Hello fellow developers!
We are almost finished with developing first phase of our ajax web app. In our app we are using hash fragments like:
http://ourdomain.com/#!list=last_ads&order=date
I understand google will fetch this url and make a request to the server in this form:
http://ourdomain.com/?_escaped_fragment_=list=last_ads?order=date&direction=desc
everything is perfect, except...
I would like to route this kind of request to another script
like so:
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^$ /webroot/crawler.php$1 [L]
The problem is, that when I try to print_r($_REQUEST) in crawler.php I get only:
Array
(
[_escaped_fragment_] => list=last_ads?order=date
[direction] => desc
)
what I'd like to get is
Array
(
[list] => last_ads
[order] => date
[directions] => des
)
I know I could use php to further break the first argument, but I don't want to ;)
please advise
==================================================== EDIT... some corrections in text and logic
Maybe is obvious for you, but in the documentation talk about escaped characters: Set up your server to handle requests for URLs that contain
In htacess work in virtual host not working, so i add in "directory"
If I'm not mistaken.
Here is a solution that provides a routable URL and query parameters correctly set for processing in the server side script.
Example: If you want
http://yoursite.com/#!/product/20
to becomehttp://yoursite.com/crawler/product/20
First in
.htaccess
We need to get rid of the
_escaped_fragment_
in the URL and replace it with something different, example:_frag
so that the (Apache) web server does not get in to circular rewrites.Second in
crawler/index.php
Your forgot QSA directive (everyone missed the point =D )
By the way your
$1
is well err... useless because it refers to nothing. So this should be:Tell me if this works.