使用?_escaped_fragment_ =向Google bot提供index.html

时间:2013-07-01 11:38:24

标签: c nginx rewrite googlebot

我有一个非常Javascript繁重的应用程序,我想索引。我的网站上有一个快照目录,可以提供给谷歌机器人。这些都在mysite.com/snapshots/下。

我正在使用以下重写规则将快照提供给Google bot:

location / {
    if ($args ~ "_escaped_fragment_=") {
        rewrite ^/(.*)$ /snapshots/$1.html break;
    }
}

这适用于除主页之外的所有快照。问题是,主页会保存为mysite.com/snapshots/index.html。当谷歌机器人请求mysite.com/?_escaped_fragment_=时,nginx尝试提供/snapshots/.html,显然请求404'。

我需要调整重写规则,以便在请求文档根目录时提供index.html。

干杯!

2 个答案:

答案 0 :(得分:0)

将其添加到您的服务器配置中,无论在何处,只需在server{}内。

location ^= index\.html$ {
    try_files $uri =404;
}

检查请求的URL是否以index.html结尾。如果这不起作用,我需要完整的URL,因为谷歌机器人要求它们。

答案 1 :(得分:0)

在重写行上方添加:

rewrite ^/$ /index.html;