0

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

您会注意到被编入索引的 URL 包含 "fragments" 。这是我系统上存在的一个文件夹,其中包含“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 处于活动状态时,它会设置一个 hashbang,将浏览器的位置指向http://acs-germany.de/#!en/homepage 。在这个程度上,我期望带有 hashbangs 的 url 是被谷歌索引的,而不是重写的 URL。

这里可能是什么问题?

4

2 回答 2

0

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

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

或者

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

拥有 http:// 会导致 Apache “重定向”而不是“重写”URL

于 2013-08-16T09:50:04.983 回答
0

您在片段文件夹中的文件是可索引的,因此如果 Google 找到它们,它们将被编入索引。

Google 将检查您的网址的 _escaped_fragment_= 版本以获取内容。您正在 302 将其重定向到片段文件夹版本。

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

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

我建议您简化事情并完全按照 Google 的要求去做。_escaped_fragment_= URL 应该直接返回页面的基本内容。

然后您可能希望将这些片段文件夹文件 301 重定向回 #! 版本以鼓励 Google 索引正确的内容。

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

于 2012-12-08T15:31:52.310 回答