一尘不染

htaccess中带有_escaped_fragment_的可抓取AJAX

ajax

各位开发人员大家好!

我们几乎已经完成了ajax Web应用程序第一阶段的开发。在我们的应用程序中,我们使用哈希散列,例如:

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

我了解google会获取此URL并以这种形式向服务器发出请求:

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

一切都很完美,除了…

我想将这种请求路由到另一个脚本

像这样:

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

问题是,当我尝试在crawler.php中使用print_r($ _ REQUEST)时,只会得到:

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

我想要得到的是

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

我知道我可以使用php进一步打破第一个论点,但我不想;)

请指教

================================================== ==编辑…在文本和逻辑上的一些更正


阅读 231

收藏
2020-07-26

共1个答案

一尘不染

您忘记的QSA指令(每个人都错过了= D)

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

顺便说一句,你$1错了…没用,因为它什么也没说。所以这应该是:

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

告诉我这是否有效。

2020-07-26