1代码库,多个域,如何创建站点地图文件

时间:2014-09-09 00:03:34

标签: php xml sitemap

我创建了一个使用1个代码库的站点,但是多个域访问该代码库。 现在,提供的内容显示了不同的CSS和图像。

我遇到的问题是,如何为每个域生成Sitemap文件。 我已经看过使用http://www.xml-sitemaps.com/并使用他们的脚本,但这只适用于1个域。

除了创建我自己的代码来进行网站抓取之外,我还没有看到任何其他路线。你知道另一个解决方案,而不是从头开始吗?理想情况下,我希望能够立即投入使用。

注意:脚本需要抓取网站。想法?

2 个答案:

答案 0 :(得分:1)

为单个代码库创建Mutliple站点地图,这是一个挑战性的工作但不是不可能的工作。我假设您正在使用某种框架来处理网站。

在制作这样的东西时会遇到很多问题:

  1. 如何识别来自哪个网站的请求。因此,问题是为特定网站创建站点地图以便收到请求。

  2. 不知何故,如果您确定哪个网站来自哪个网站,那么您的网站就是动态的。如何记录这些参数。

  3. 在哪里存放如此庞大的数据库。不知怎的,如果你解决这些问题,mutlitple站点请求/参数哪个数据库足够大,可以存储如此大的请求。

  4. 如果你以某种方式管理庞大的数据库,那么接下来就向搜索引擎提交如此庞大的xml的问题就会出现。

  5. 站点地图每天都会开始增长,创作的时间肯定会增加,因此从网站抓取的请求也会每天增加。

  6. 如果您的站点地图变得庞大并且为不同的网站提交了相同的网页,那么内容将与网站一起标记为垃圾内容。

  7. 有一些问题可以看不见或预测,因此这将是危险的事情。现在去做。

    的解决方案

    对于第1和第2个问题,我们必须使用PHP $_SERVER - 它提供有关服务器和执行环境信息的信息,例如参数,主机名,请求的主机和许多其他内容。

    现在针对问题3到6,我们使用文本文件将请求存储为一个域的一个文件并提供请求详细信息。该文件必须在特定时间后刷新,即每天,每周等。

    在创建站点地图时,我们必须读取文件并获取unqiue参数,以便站点地图不包含多个相同的网址。

    警告:强烈建议不要这样做,因为它会触发垃圾邮件,很快就会被识别并标记为垃圾邮件发送者网站。

答案 1 :(得分:1)

这个答案中包含的假设:

  1. 对于所有页面,每个域上的域名后面的URI元素都是相同的。

    i.e. http://site-one.com/page/1http://site-two.com/page/1

  2. 相同
  3. 您可以操作xml-sitemaps提供的文件。如果您需要连续生成这个,这是一个问题,这意味着您需要创建一个脚本来执行以下每个href。

  4. 如果您不介意使用http://www.xml-sitemaps.com中提到的服务,那么到目前为止最简单的方法是使用该服务,然后将所有绝对URL更改为相对URL。您可以编写任何类似

    的链接
    http://www.example.com/category/page
    

    作为

    的相对链接
    /category/page
    

    简而言之,起始斜杠是关键,表示浏览器使用当前域'。您可以在http://www.example.com/的所有实例上进行查找和替换,转换为/ +剩余的URI元素字符串。