Robots.txt 文件在 MVC.NET 4
Robots.txt file in MVC.NET 4
我在我的 ASP MVC.NET 项目中阅读了一篇关于忽略某些 url 机器人的文章。在他的文章中,作者说我们应该像这样在一些关闭的控制器中添加一些动作。在此示例中,他将操作添加到家庭控制器:
#region -- Robots() Method --
public ActionResult Robots()
{
Response.ContentType = "text/plain";
return View();
}
#endregion
那么我们应该在我们的项目中添加一个 Robots.cshtml 文件和这个 body
@{
Layout = null;
}
# robots.txt for @this.Request.Url.Host
User-agent: *
Disallow: /Administration/
Disallow: /Account/
最后我们应该将这行代码添加到 Gloabal.asax
routes.MapRoute("Robots.txt",
"robots.txt",
new { controller = "Home", action = "Robots" });
我的问题是,机器人是否会抓取具有 Administration
等 [授权] 属性的控制器?
do robots crawl the controllers which has [Authorization] attribute like Administration
如果他们找到 link,他们可能会尝试抓取它,但他们会失败,就像任何使用未登录的网络浏览器的人一样。机器人没有特殊的访问能力您的网站不同于标准浏览器。
请注意,符合 Robots Exclusion Standard 的机器人会准确抓取 URL
您可以根据需要为 URL 创建回复。一种方法当然是拥有一个处理该请求的控制器。您也可以只添加一个文本文件,其内容与您从控制器返回的内容相同,例如
User-agent: *
Disallow: /Administration/
Disallow: /Account/
到项目的根文件夹并确保将其标记为内容,以便将其部署到网站。
添加此 robots.txt 条目将阻止符合要求的机器人尝试浏览需要身份验证的控制器(并稍微减轻您网站上的负载),但如果没有机器人文件,它们只会尝试 URL 并失败。
这段简单的代码适用于我的 asp net core 3.1 站点:
[Route("/robots.txt")]
public ContentResult RobotsTxt()
{
var sb = new StringBuilder();
sb.AppendLine("User-agent: *")
.AppendLine("Disallow:")
.Append("sitemap: ")
.Append(this.Request.Scheme)
.Append("://")
.Append(this.Request.Host)
.AppendLine("/sitemap.xml");
return this.Content(sb.ToString(), "text/plain", Encoding.UTF8);
}
我在我的 ASP MVC.NET 项目中阅读了一篇关于忽略某些 url 机器人的文章。在他的文章中,作者说我们应该像这样在一些关闭的控制器中添加一些动作。在此示例中,他将操作添加到家庭控制器:
#region -- Robots() Method --
public ActionResult Robots()
{
Response.ContentType = "text/plain";
return View();
}
#endregion
那么我们应该在我们的项目中添加一个 Robots.cshtml 文件和这个 body
@{
Layout = null;
}
# robots.txt for @this.Request.Url.Host
User-agent: *
Disallow: /Administration/
Disallow: /Account/
最后我们应该将这行代码添加到 Gloabal.asax
routes.MapRoute("Robots.txt",
"robots.txt",
new { controller = "Home", action = "Robots" });
我的问题是,机器人是否会抓取具有 Administration
等 [授权] 属性的控制器?
do robots crawl the controllers which has [Authorization] attribute like Administration
如果他们找到 link,他们可能会尝试抓取它,但他们会失败,就像任何使用未登录的网络浏览器的人一样。机器人没有特殊的访问能力您的网站不同于标准浏览器。
请注意,符合 Robots Exclusion Standard 的机器人会准确抓取 URL
您可以根据需要为 URL 创建回复。一种方法当然是拥有一个处理该请求的控制器。您也可以只添加一个文本文件,其内容与您从控制器返回的内容相同,例如
User-agent: *
Disallow: /Administration/
Disallow: /Account/
到项目的根文件夹并确保将其标记为内容,以便将其部署到网站。
添加此 robots.txt 条目将阻止符合要求的机器人尝试浏览需要身份验证的控制器(并稍微减轻您网站上的负载),但如果没有机器人文件,它们只会尝试 URL 并失败。
这段简单的代码适用于我的 asp net core 3.1 站点:
[Route("/robots.txt")]
public ContentResult RobotsTxt()
{
var sb = new StringBuilder();
sb.AppendLine("User-agent: *")
.AppendLine("Disallow:")
.Append("sitemap: ")
.Append(this.Request.Scheme)
.Append("://")
.Append(this.Request.Host)
.AppendLine("/sitemap.xml");
return this.Content(sb.ToString(), "text/plain", Encoding.UTF8);
}