Google AJAX 抓取的问题,返回的是快照网址而不是哈希邦网址



我刚刚实现了ajax爬网,我的URL是:http://acs-germany.de/#!en/主页该网站刚刚被编入索引,我在这里查看搜索结果:https://www.google.at/#hl=en&q=+站点:acs germany.de+acs-germany.de

你会注意到被编入索引的URL包含";碎片"。这是一个存在于我的系统中的文件夹,它包含"的HTML快照;ajax";(或者更好的dhtml)内容。当遵循该URL时,会提供快照,这反过来会破坏应用程序,因为应用程序是在半生不熟的标记上实例化的,使网站成为FUBAR。

我使用的是apache,与URL重写相关的规则如下:

Options -MultiViews
#Rewrite queries from google to the right files
RewriteEngine On
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=(.*)$
RewriteRule ^(.*) http://acs-germany.de/fragments/%1.html?

直截了当:网站位于http://acs-germany.de,当JS处于活动状态时,它会设置一个hashbang,将浏览器的位置指向http://acs-germany.de/#!en/主页。在这种程度上,我希望带有hashbangs的url是谷歌索引的,而不是重写的url。

这里可能有什么问题?

碎片文件夹中的文件是可索引的,因此如果谷歌找到它们,它们将被索引。

谷歌将检查您的URL的_escaped_fragment_=版本以获取内容。您正在302将其重定向到碎片文件夹版本。

这不是.htaccess代码所暗示的。有没有你没有告诉我们的[R]?

我怀疑重定向会混淆谷歌的系统,他们最终会索引你的碎片文件夹文件。

我建议你简化事情,按照谷歌的要求去做。_escaped_fragment_=URL应该直接返回页面的基本内容。

然后你可能想301重定向那些碎片文件夹文件回到#!版本,以鼓励谷歌索引正确的东西。

老实说,我不认为有任何理由使这个网站AJAX为基础。每次点击似乎都会完全重新创建页面。AJAX只是更新页面的一部分。

我遇到了同样的问题,并修复了它,从RewriteRule中删除了http://部分。试试这个

RewriteRule ^(.*) /acs-germany.de/fragments/%1.html?

RewriteRule ^(.*) /fragments/%1.html?

使用http://导致Apache"重定向"而不是"重写"URL

最新更新