Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
了解谷歌机器人AJAX爬行_Ajax_.htaccess_Googlebot_Hashbang - Fatal编程技术网

了解谷歌机器人AJAX爬行

了解谷歌机器人AJAX爬行,ajax,.htaccess,googlebot,hashbang,Ajax,.htaccess,Googlebot,Hashbang,我浏览了谷歌的文档和无数关于这个主题的博客文章,根据日期和来源,似乎有一些相互矛盾的信息。请把你的智慧洒在这个卑微的农民身上,一切都会好起来的 我正在建立一个免费的网站,其中很大一部分观众来自互联网连接不良的非洲国家,客户负担不起任何像样的基础设施。因此,我决定将所有内容都作为静态html文件提供,如果javascript可用,我会在用户单击导航链接时将页面内容直接加载到DOM中,以避免加载整个页面的开销 我的客户端路由如下所示: //domain.tld/#/第页 我的第一个问题是,;谷歌机器

我浏览了谷歌的文档和无数关于这个主题的博客文章,根据日期和来源,似乎有一些相互矛盾的信息。请把你的智慧洒在这个卑微的农民身上,一切都会好起来的

我正在建立一个免费的网站,其中很大一部分观众来自互联网连接不良的非洲国家,客户负担不起任何像样的基础设施。因此,我决定将所有内容都作为静态html文件提供,如果javascript可用,我会在用户单击导航链接时将页面内容直接加载到DOM中,以避免加载整个页面的开销

我的客户端路由如下所示:

//domain.tld/#/第页

我的第一个问题是,;谷歌机器人是否将其转化为:

//domain.tld/\u-escaped\u-fragment\u/page
//domain.tld/?\u-escaped\u-fragment\u=/page

我用php制作了一个简单的服务器端路由器,它为googlebot构建请求的页面,我的计划是将
//d.tld/\u转义\u片段\u/page
重定向到
//d.tld/router/page

但是当使用谷歌的“以谷歌机器人的身份获取”(这是我第一次添加),它似乎无法识别页面上的任何链接。它只返回“Success”并向我显示主页的html(更新:将Fetch as Googlebot指向
//d.tld/#!/page
时,它只返回主页的内容,而不执行任何“转义片段”魔术)。这就引出了我的第二个问题:

当使用hashbang链接时,我是否需要遵循特定的语法,以便googlebot对它们进行爬网

我的链接在HTML中如下所示:

    <a href="#!/page">Page Headline</a>


更新1:所以,当我要求以Google机器人的身份获取
//d.tld/#/页面
访问日志中会显示:
获取/\u转义\u片段./page HTTP/1.1“301 502”-“Mozilla/5.0(兼容;Googlebot/2.1+http://www.google.com/bot.html)“
但它似乎没有遵循我设置的301,而是显示主页。我应该用302吗?这是我使用的规则:
RedirectMatch 301/\u转义\u片段/(.*)/router/$1


更新2:我已经改变了我的计划,并将考虑谷歌机器人作为我非javascript后备策略的一部分。因此,现在所有链接都指向路由器
/router/page
,然后更改为
/#/page/
用javascript加载。我将这个问题保留一段时间,以防有人有一个可以帮助他人的绝妙解决方案