Mediawiki Sitemap网址受robots.txt限制

时间:2013-12-04 12:53:02

标签: web-crawler mediawiki sitemap bots robots.txt

我在我的网站上安装了mediawiki,如下所示:www.mysite.com/w/index.php

我使用短网址方法将网址更改为mysite.com/wiki

之后,我将其放在robots.txt中,禁止机器人关注指向/w/的链接:

# prevent spiders from indexing non-article pages
User-agent: *
Disallow: /w/

在我将上述内容添加到robots.txt之前,我参考了此Mediawiki手册链接:http://www.mediawiki.org/wiki/Manual:Robots.txt

这很有用,因为它可以防止僵尸程序抓取编辑页面等等。但是,自从我有了这个,现在我有另一个问题,在谷歌网站管理员工具中显示。搜索引擎无法抓取位于以下位置的站点地图:mysite.com/w/sitemap/sitemap-index-xyz_wikidb.xml这是因为robots.txt文件显示“受robots.txt限制的网址”错误。

我一直在网上搜索并意识到robots.txt文件没有“允许”例外。那么我如何禁止/ w / url但只允许访问/w/sitemap/ directory?我唯一的另一个选择是废弃个人网址,如:

User-agent: *
Disallow: /w/index.php?diff=
Disallow: /w/index.php?oldid=
Disallow: /w/index.php?title=Help
Disallow: /w/index.php?title=Image
Disallow: /w/index.php?title=MediaWiki
Disallow: /w/index.php?title=Special:
Disallow: /w/index.php?title=Template
Disallow: /w/skins/

如果上面的替代方法是我唯一的选择,那么我是如何通过在每个index.php网址之前添加/w/来添加网址的?比如:/w/index.php?etc..etc..并列出上面的一个?

1 个答案:

答案 0 :(得分:3)

如果您只关心主要搜索引擎,可以使用Allow指令:

User-agent: *
Allow: /w/sitemap/
Disallow: /w/

这肯定适用于Googlebot和Bingbot。但是,它不适用于许多老式机器人。 Allow指令不是原始robots.txt标准的一部分,但它在许多现代Web机器人上实现,尤其是搜索引擎爬虫。

如果你真的需要它来为老式机器人工作,那么你的解决方案就可以了。您还可以通过将所有index.php URL组合成一行来清除它:

User-agent: *
Disallow: /w/index.php
Disallow: /w/skins/