我刚刚实施了ajax抓取,我的网址为:http://acs-germany.de/#!en/homepage 该网站刚刚编入索引,我在这里查看搜索结果: https://www.google.at/#hl=en&q=+site:acs-germany.de+acs-germany.de
您会注意到已编入索引的网址包含“片段”。这是我的系统上存在的文件夹,其中包含“ajax”(或更好的,dhtml)内容的HTML快照。当关注该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处于活动状态时,它会将浏览器的位置设置为http://acs-germany.de/#!en/homepage。 在这种程度上,我期待带有hashbangs的url是google索引的内容,而不是重写的URL。
关于这里可能出现什么问题的任何建议?
提前感谢您的帮助!
答案 0 :(得分:0)
您在片段文件夹中的文件是可编制索引的,因此如果Google找到它们,它们将被编入索引。
Google会检查您网址的_escaped_fragment_ =版本以获取内容。您将302重定向到片段文件夹版本。
这不是你的.htaccess代码所暗示的。你有没有告诉我们一个[R]?
我怀疑重定向会让Google的系统感到困惑,他们最终会将您的片段文件夹文件编入索引。
我建议你简化一些事情并完全按照Google的要求行事。 _escaped_fragment_ = URL应直接返回页面的基本内容。
然后你可能想要将那些片段文件夹文件重定向回#!鼓励谷歌为正确的东西编制索引的版本。
说实话,我认为没有任何理由让这个网站以AJAX为基础。每次单击似乎都完全重新创建页面。 AJAX只是更新页面的一部分。
答案 1 :(得分:0)
我遇到了同样的问题,我修复了它从RewriteRule中删除http://部分。试试这个
RewriteRule ^(.*) /acs-germany.de/fragments/%1.html?
或
RewriteRule ^(.*) /fragments/%1.html?
让http://导致Apache“重定向”而不是“重写”URL