阻止API网关接收对robots.txt文件的请求

布坎

我一直在研究一个新项目,该项目利用了映射到lambda函数的API网关。lambda函数包含一个Kestrel .NET Web服务器,该服务器通过API网关通过代理接收请求。我已将API网关重新映射到实际的子域,以确保某些品牌一致性。一切正常。但是,我最近实现了Elmah.IO,以便更好地了解在这种异常情况下会出现什么错误。

现在,每天大约有1-5次,api网关URL收到了对它无法完成的robots.txt文件的请求。我不希望API能够完成此请求,因为API并非旨在提供静态内容。我的问题是;如何防止提出这些要求?

是什么导致请求API网关URL?是因为它是通过我的主机站点中的链接直接检测到的吗?它使用CORS来访问API,因此机器人可能会将API检测为一个完全独立的域并尝试对其进行爬网。如果是这样,是否可以在Web API中添加一些配置以强制我的设计针对robots.txt请求进行文本响应?

布坎

在研究了一些方法之后,我最终尝试尝试为robots.txt响应动态生成我的文本文件。我正在以下位置阅读文章:http : //rehansaeed.com/dynamically-generating-robots-txt-using-asp-net-mvc/

这给了我动态生成请求的想法。因此,我设置了以下内容:

[Route("/")]
public class ServerController : Controller
{
    [HttpGet("robots.txt")]
    public ContentResult GetRobotsFile()
    {
        StringBuilder stringBuilder = new StringBuilder();

        stringBuilder.AppendLine("user-agent: *");
        stringBuilder.AppendLine("disallow: *");

        return this.Content(stringBuilder.ToString(), "text/plain", Encoding.UTF8);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章