gpt4 book ai didi

apache - apache 服务器上 Backbone.js 应用程序的 SEO - phantom.js 和 node.js?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:27:40 25 4
gpt4 key购买 nike

我正在开发一个需要搜索引擎优化 (SEO) 的 backbone.js/marionette 网站。我们正在使用 java/spring RESTful 后端和 Apache 2.2 网络服务器。我目前正在我们的应用程序中实现 pushstate,但它仍处于早期阶段。

到目前为止我想出的解决方案:

  • 对于使用支持 javascript 的浏览器的普通用户,请使用纯客户端主干实现。
  • 使用 Apache 的 mod_rewrite 将所有路径路由到我们的 index.html 页面,路径保持不变,以便 backbone.js 返回正确的页面,并且 url 保留其形式。我有这么多工作正常(减去一个错误)。
  • 使用 Apache 的 httpd.conf 文件嗅探机器人/爬虫,并创建重写规则以将机器人重新路由到我们的 node.js 服务器。
  • 使用 phantomjs 生成 html/内容并将其返回给网络爬虫。

我们不需要网站为机器人提供完整的功能,但它必须返回正确的内容。我们正在使用 mustache 模板,但我们想要一个 DRY 网站,并且觉得随着网站的增长,任何类型的 java 模板渲染都会变得非常困惑。我们希望这个网站能存在很多年,而不是试图连接到大量的第 3 方库(至少不会比我们现在的多)。

有没有人对此主题有任何经验或建议?根据我的研究,其他人有点谨慎,特别是 this related question .我有点担心机器人是否在 javascript 中“点击”与执行获取请求。想法和建议?

非常感谢。

最佳答案

非常糟糕的主意,抱歉我太直率了。

你要做的是:

如果我点击 http://yoursite.com/path/to/resource通过直接的 HTTP 请求,您的服务器应该为我提供该资源页面的 html,然后如果您愿意,您可以在此时使用 javascript 来“初始化”单页应用程序方面。如果我通过 AJAX 和主干路由从那里导航,那么从那里开始一切都很好。如果我随后复制一个 url,关闭我的浏览器,然后在重新打开时将其粘贴进去,我应该会看到相同的 html。

事实证明,这种方法不仅是 SEO 的最佳方法,也是系统概念设计的最佳方法,并确保您为每个人“工作”,而不仅仅是支持快速 JS 的浏览器。

您要不惜一切代价避免的是试图欺骗爬虫并向它们提供与用户看到的内容不同的内容……这是黑名单的秘诀。

总而言之,构建您的站点,以便如果您通过 http 访问 url,您将获得完整的 html,如果您通过单页应用程序模式 ajax 访问相同的 url,您将获得您需要保持同步的部分内容....更好的架构,更少的 SEO 黑名单!

关于apache - apache 服务器上 Backbone.js 应用程序的 SEO - phantom.js 和 node.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15300571/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com