【发布时间】:2013-07-01 08:56:17
【问题描述】:
我有一个 AngularJS 应用程序,我想在 Google 上正确编入索引。
我编写了一个客户端,它会抓取网站的链接,然后使用 Phantomjs 制作快照下载页面。这一切都很好。我遇到的问题是将这些快照提供给 Google 机器人。
出于某种原因,Google 机器人将?_escaped_fragment= 附加到我的网址中。例如,http://me.com/about 更改为 http://me.com/about?_escaped_fragment=。我已经在访问日志中验证了这一点。
我正在尝试捕获此请求并使用此配置为 Google bot 提供快照:
location / {
if ($args ~ "_escaped_fragment_=") {
rewrite ^ /snapshots/$1;
}
}
但是,请求此 URL:http://me.com/about?_escaped_fragment= 始终会导致 404。与其他页面相同。
快照存储在/snapshots,相对于网站的根目录。它们以它们的页面命名,遵循目录结构,因此http://me.com/business/register 在/snapshots/business/register.html 中有一个快照。
我该怎么做才能让这些快照正常工作?
谢谢。
【问题讨论】: