站点用的是discuz,在静态页面上使用动态参数,会造成spider多次和重复抓取

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了站点用的是discuz,在静态页面上使用动态参数,会造成spider多次和重复抓取相关的知识,希望对你有一定的参考价值。

http://www.itneng.com/

动态网站不可能完全伪静态化,设置伪静态之后需要屏蔽动态域名的收录即可。
编辑robots.txt文件屏蔽不想收录的动态地址,如何撰写Robots文件请看:http://www.baidu.com/search/robots.html
这也是伪静态后的通用做法。
参考技术A 启用伪静态没,带参数的是动态页面的追问

已经启用了

从 XML 内容生成静态 HTML 站点

【中文标题】从 XML 内容生成静态 HTML 站点【英文标题】:Producing a static HTML site from XML content 【发布时间】:2011-02-20 11:42:11 【问题描述】:

我有一个较长的 XML 文档,我需要从中生成静态 HTML 页面(通过 CD 分发)。我知道(在不同程度上)JavaScript、PHP 和 Python。我考虑过的当前选项列在这里:

我不排除 JavaScript,因此一种选择是使用 ajax 将 XML 内容动态加载到 HTML 页面中。 编辑:我会为这个选项使用 jQuery。

学习一些基本的 XSLT 并以这种方式生成符合正确规范的 HTML。

用PHP(例如)生成站点,然后生成静态站点。

编写一个脚本(例如在 Python 中)将 XML 转换为 HTML。这类似于 XSLT 选项,但无需学习 XSLT。

有用的信息:

XML 可能会在某个时候发生变化,因此我希望能够轻松地重新生成站点。

我必须制作某种菜单来在文档中跳转(所以我需要制作某种内容索引)。

我想知道是否有人有我没有想到的更好的想法。如果不是,我希望你告诉我,我的哪个选项似乎最明智。我想我知道我要做什么,但我想要第二个意见。谢谢。

【问题讨论】:

【参考方案1】:

我认为 XSLT 是迄今为止最简单和最好的方法——即使考虑到必须学习 xslt。

xslt 编程有多种风格,但最简单的是“推送处理”,您可以在其中编写几个模板来描述如何将您的 xml 输入转换为 html 输出。然后编写一个根模板,输出基本的 html 包装器并调用其他模板。根 模板很简单:

<xsl:template match="/" > <!-- "/" matches the document root -->
  <html>  <!-- whatever is not in xsl: namespace is template output -->
  <head><title>...</title></head>
  <body>
  <xsl:apply-templates />  <!-- this searches for and calls additional template matches --> 
  </body>
  </html>
</xsl:template>  

【讨论】:

感谢 Steven(和 Lucero)。我想我会使用 XSLT,我会在完成后报告!如果一切不顺利,我保留撤回我接受的答案的权利:)【参考方案2】:

如果需要,我会使用 XSLT 选项,通过参数控制以从相同的 XML 源生成不同的页面。它确实是用于 XML 转换的工具。

【讨论】:

我不确定 XSLT 的唯一原因是因为它是一种我以前从未使用过的语言。不过我很高兴学习。 如果您以前做过一些函数式/声明式编程,我想您很快就会对 XSLT 感到宾至如归。【参考方案3】:

我会选择 PHP 选项。原因是当 XML 更改时,您的网站内容“应该”自动更改,而无需您修改 PHP 代码。

创建一个 Python 脚本来生成大量静态页面对我来说似乎是个坏主意,而且使用 javascript 你会遇到跨浏览器的问题(除非你可能正在使用框架)。

为这类任务使用服务器端语言,这就是它们的目的。

【讨论】:

问题是,它是在 CD 上分发的,所以我仍然需要重新生成静态页面。另外,如果我走 JS 路线,我将使用 jQuery。 网站是否分发购买CD?换句话说,人们会从 CD-ROM 运行这个网站吗? 在这种情况下,PHP 和服务器端语言都已淘汰。最好的方法可能是 Python 恕我直言,除非您非常了解 XSLT。 我知道你不能从 CD 运行 PHP!这就是我要从动态 PHP 站点生成静态站点的原因。【参考方案4】:

选择你最喜欢的。

如果它很简单,您可以使用(例如)php 生成页面,然后使用命令行脚本(在 python 或 php 中)为您创建缓存文件。

【讨论】:

以上是关于站点用的是discuz,在静态页面上使用动态参数,会造成spider多次和重复抓取的主要内容,如果未能解决你的问题,请参考以下文章

Apache下使用rewrite实现discuz伪静态的配置

基于静态站点内容动态推送的方案

Wordpress与Discuz

如何用discuz建网站

Nginx/Apache之伪静态设置 - 运维小结

百度统计中“在静态页面上使用动态参数,会造成spider多次和重复抓取”出现了两个本来就是静态html的页面。