如何在ASP.NET网站中隐藏DOC文件避免被搜索引擎收录
ASP.NET站点避免DOC文件被搜索引擎抓取的解决方案
配置根目录robots.txt规则
在站点根目录新建/修改robots.txt文件,添加规则限制爬虫抓取目标文件,示例配置如下:User-agent: * # 替换为你的DOC文件的站点相对路径 Disallow: /uploads/xxx.doc # 如果要禁止所有DOC格式文件抓取,可使用通配符规则 # Disallow: /*.doc$注意该规则依赖搜索引擎爬虫主动遵守,部分恶意爬虫不会生效。
配置X-Robots-Tag响应头
这是搜索引擎官方认可的禁止收录规则,优先级高于robots.txt。在ASP.NET站点的web.config文件中添加对应配置即可:<configuration> <!-- 替换path属性为你的DOC文件相对路径 --> <location path="uploads/xxx.doc"> <system.webServer> <httpProtocol> <customHeaders> <add name="X-Robots-Tag" value="noindex, nofollow, noarchive" /> </customHeaders> </httpProtocol> </system.webServer> </location> </configuration>增加文件访问权限校验
如果该DOC文件为非公开文件,最彻底的方案是不要将文件放在站点可公开访问的静态目录中,改为通过后端接口鉴权后返回文件流,ASP.NET Core示例代码如下:// 可搭配自定义权限校验逻辑,仅允许授权用户访问 [Authorize] public IActionResult GetPrivateDoc() { // 文件存放在非站点公开目录下,避免直接被访问 var fileBytes = System.IO.File.ReadAllBytes(@"C:\private_files\internal.doc"); return File(fileBytes, "application/msword", "internal.doc"); }清除已收录快照
如果文件已经被搜索引擎收录,可前往对应搜索引擎的站长平台,提交链接删除申请,快速清除已有的公开快照。
内容的提问来源于stack exchange,提问作者Lean Yi Jun
相关产品推荐
相关产品推荐

