首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >跨域sitemap.xml

跨域sitemap.xml
EN

Stack Overflow用户
提问于 2014-06-18 11:01:16
回答 3查看 3.2K关注 0票数 2

我目前有一个在线应用程序,允许用户在多个不同的域名(包括主域名)上创建个人页面。

用户网站可以如下所示:

  • john.mainappdoman.com - mainappdomain.com是用户创建网站的主要域名。
  • user.hosteddomain.com
  • another.secondarydomain.com
  • third.mydomain.com

如果我生成一个包含来自所有域名的所有用户网站的单一sitemap.xml,可以吗?对于所有域名,sitemap.xml都是相同的吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-20 09:01:57

您可以使用下列方法之一:

  • 包含多个网站的URL的单一站点地图,包括来自不同域的站点。例如,位于http://host1.example.com/sitemap.xml的站点地图可以包括以下站点的URL:

http://host1.example.com

http://host2.example.com

http://host1.example1.com

http://host1.example.ch

  • 单独的站点地图(每个站点一个),所有这些站点都驻留在一个位置。例如:

http://host1.example.com/host1-example-sitemap.xml

http://host1.example.com/host2-example-sitemap.xml

http://host1.example.com/host1-example1-sitemap.xml

http://host1.example.com/host1-example-ch-sitemap.xml

更多信息是可用的这里

票数 1
EN

Stack Overflow用户

发布于 2015-12-03 04:25:04

No.您不能将所有网站的URL都放在一个sitemap.xml文件中。每个域和子域被视为不同的网站,因此每个域都必须有自己的sitemap.xml文件。

http://www.sitemaps.org/protocol.html第一部分的最后一段

此外,站点地图中的所有URL都必须来自单个主机,如www.example.com store.example.com。有关详细信息,请参阅Sitemap文件位置。

强调我的。是一种英语,它是排他性的:一种或另一种,而不是两者兼而有之。

因此,很明显,您不能在同一个host1.example.comhost2.example.com中获得来自sitemap.xml的URL。

此外,正如hyip的答案所指出的,sitemap.xml需要位于您网站的根目录中。见以下答案:位置

站点地图中列出的所有URL必须与Sitemap位于同一主机上。例如,如果站点地图位于http://www.example.com/sitemap.xml,它不能包含来自http://subdomain.example.com的URL。如果站点地图位于http://www.example.com/myfolder/sitemap.xml,则不能包含来自http://www.example.com的URL。

您可以通过使用sitemap.xml来指示sitemap.xml的位置来打破sitemap.xml文件的跨域位置。然而,这并不意味着您可以创建一个sitemap.xml,其中包括URL从您的所有网站。

代码语言:javascript
复制
sitemap: http://sitemaps.example.com/subdomain-sitemap.xml

请注意,有了一个好的CMS,您应该没有问题,为您的每个网站创建一个sitemap.xml。这可能会更容易一些,因为您肯定不会达到每个XML文件限制的50,000个URL,然而,一个文件可能会.

票数 4
EN

Stack Overflow用户

发布于 2015-04-06 10:00:58

根据sitemap.org,还允许在提交中描述的站点地图中映射多个域。为了您的方便,我在这里接受详细的解释。

要从单个主机提交多个主机的站点地图,需要“证明”站点地图中提交URL的主机的所有权。

这里有一个例子。假设您想为3个主机提交站点地图:

代码语言:javascript
复制
www.host1.com with Sitemap file sitemap-host1.xml
www.host2.com with Sitemap file sitemap-host2.xml
www.host3.com with Sitemap file sitemap-host3.xml

此外,您希望将所有三个站点地图放在一个主机上: www.sitemaphost.com。因此,站点地图URL将是:

代码语言:javascript
复制
http://www.sitemaphost.com/sitemap-host1.xml
http://www.sitemaphost.com/sitemap-host2.xml
http://www.sitemaphost.com/sitemap-host3.xml

默认情况下,这将导致“交叉提交”错误,因为您试图通过托管在www.sitemaphost.com上的站点地图(其他两台主机也是如此)提交www.host1.com的URL。避免错误的一种方法是证明您拥有www.host1.com (即有权修改文件)。您可以通过修改www.host1.com上的robots.txt文件来实现这一点,以指向www.sitemaphost.com上的站点地图。

在本例中,位于robots.txt的http://www.host1.com/robots.txt文件将包含行"Sitemap:http://www.sitemaphost.com/sitemap-host1.xml“。通过修改www.host1.com上的robots.txt文件并让它指向www.sitemaphost.com上的Sitemap,您已经隐式地证明了您拥有www.host1.com。换句话说,控制www.host1.com上的robots.txt文件的人信任http://www.sitemaphost.com/sitemap-host1.xml的站点地图包含www.host1.com的URL。对于另外两个主机,可以重复相同的过程。

现在,您可以在www.sitemaphost.com上提交站点地图。当特定主机的robots.txt (例如http://www.host1.com/robots.txt )指向另一个主机上的Sitemap或Sitemap索引时,预计对于每个目标站点地图(如http://www.sitemaphost.com/sitemap-host1.xml ),所有URL都属于指向它的主机。这是因为,如前所述,Sitemap应该只具有来自单个主机的URL。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24283870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档