如何自定义 DNN robots.txt 以允许特定于模块的站点地图被搜索引擎抓取?

How to customize DNN robots.txt to allow a module specific sitemap to be crawled by search engines?

我正在为我们 DNN 网站上的博客、新闻文章等使用 EasyDNN 新闻模块。核心 DNN 站点地图不包含此模块生成的文章,但模块会创建自己的站点地图。

例如: 域名.com/blog/mid/1005/ctl/sitemap

当我尝试将此站点地图提交到 Google 时,它说我的 Robots.txt 文件阻止了它。

查看 DNN 附带的 Robots.txt 文件,我注意到 Slurp 和 Googlebot 用户代理下的以下行:

Disallow: /*/ctl/       # Slurp permits *
Disallow: /*/ctl/       # Googlebot permits *

我想提交模块的站点地图,但我想知道为什么这些用户代理不允许 /ctl,如果我从文件中删除这些行会有什么影响?具体来说,因为它与 Google 抓取网站有关。

作为补充参考,我阅读了下面关于通过禁止包含 /ctl 的特定 url 来避免重复内容惩罚的文章,例如登录、注册、条款等。我想知道是否这就是为什么 DNN 不允许任何 url 和 /ctl.

http://www.codeproject.com/Articles/18151/DotNetNuke-Search-Engine-Optimization-Part-Remov

执行此操作的正确方法是使用 DNN 站点地图提供程序,这对于模块开发人员来说非常容易做到。

我没有博客 post/tutorial,但我有示例代码,可以在

中找到

http://dnnsimplearticle.codeplex.com/SourceControl/latest#cs/Providers/Sitemap/Sitemap.cs

这将允许自定义模块将自己的信息添加到 DNN 站点地图。

不允许 /CTL 的原因是因为加载 Login/Registration/Profile 控件的正常方法是执行 site?ctl=login 并且人们通常不希望将其编入索引。

另一个选项就是编辑 robots.txt 文件。