DS_*_*per 6 php ajax .htaccess url-rewriting web-crawler
大家好开发者!
我们几乎完成了开发我们的ajax Web应用程序的第一阶段.在我们的应用中,我们使用哈希片段,如:
http://ourdomain.com/#!list=last_ads&order=date
Run Code Online (Sandbox Code Playgroud)
我了解google将获取此网址并以此形式向服务器发出请求:
http://ourdomain.com/?_escaped_fragment_=list=last_ads?order=date&direction=desc
Run Code Online (Sandbox Code Playgroud)
一切都很完美,除了......
我想将这种请求路由到另一个脚本
像这样:
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^$ /webroot/crawler.php$1 [L]
Run Code Online (Sandbox Code Playgroud)
问题是,当我在crawler.php中尝试print_r($ _ REQUEST)时,我只得到:
Array
(
[_escaped_fragment_] => list=last_ads?order=date
[direction] => desc
)
Run Code Online (Sandbox Code Playgroud)
我想得到的是
Array
(
[list] => last_ads
[order] => date
[directions] => des
)
Run Code Online (Sandbox Code Playgroud)
我知道我可以用php来进一步打破第一个参数,但我不想;)
请指教
================================================== ==编辑...文本和逻辑中的一些更正
你忘记了 QSA 指令(每个人都错过了这一点 =D )
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^$ /webroot/crawler.php%1 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
顺便说一句,你的$1错了……没用,因为它什么也没指。所以这应该是:
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^$ /webroot/crawler.php [QSA,L]
Run Code Online (Sandbox Code Playgroud)
告诉我这是否有效。
| 归档时间: |
|
| 查看次数: |
7413 次 |
| 最近记录: |