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


1 Code Base, multiple domains, How to create sitemap files

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

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

除了创建自己的代码来进行网站抓取之外,我看不到任何其他途径。你知道另一种解决方案而不是从头开始吗?理想情况下,我很想脚踏实地。

注意:脚本需要对网站进行爬网。想法?

为单个代码库创建多个站点地图是一项具有挑战性的工作,但并非不可能。我假设你正在使用某种框架来工作网站。

在创建这样的东西的过程中出现了许多问题:

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

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

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

  4. 若你们以某种方式管理这个庞大的数据库,那个么下一个问题就是向搜索引擎提交这么大的xml。

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

  6. 如果你的网站地图变得巨大,并且相同的页面被提交给不同的网站,那么内容将与网站一起被标记为垃圾邮件。

有一些问题是看不见的或可以预测的,所以这将是一件冒险的事情。现在就去做吧。

解决方案

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

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

在创建网站地图时,我们必须读取文件并获取unqiue参数,这样网站地图就不会包含多个相同的url。

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

此答案中内置的假设:

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

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

  2. 您可以操作xml站点地图提供的文件。如果您需要连续生成,这是一个问题,这意味着您需要创建一个脚本来按照href执行以下操作。

如果您不介意使用您在http://www.xml-sitemaps.com到目前为止,最简单的方法是使用该服务,然后将所有绝对URL更改为相对URL。你可以写任何看起来像的链接

http://www.example.com/category/page

作为的相对链路

/category/page

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