RobotsTxtCore 2.0.0-preview3
See the version list below for details.
dotnet add package RobotsTxtCore --version 2.0.0-preview3
NuGet\Install-Package RobotsTxtCore -Version 2.0.0-preview3
<PackageReference Include="RobotsTxtCore" Version="2.0.0-preview3" />
paket add RobotsTxtCore --version 2.0.0-preview3
#r "nuget: RobotsTxtCore, 2.0.0-preview3"
// Install RobotsTxtCore as a Cake Addin #addin nuget:?package=RobotsTxtCore&version=2.0.0-preview3&prerelease // Install RobotsTxtCore as a Cake Tool #tool nuget:?package=RobotsTxtCore&version=2.0.0-preview3&prerelease
RobotsTxtCore
From version 2.0 I've dropped support for .NET Core versions prior to 3.1 and made a huge breaking change by adding a
IRobotsTxtProvider
interface seperate from the middleware to handle configuration.
A Robots.txt middleware for ASP.NET Core. Why is this needed you ask? Because if you need to add dynamic values (such as a configured url from your CMS) you'll need some sort of code to handle that, and this makes it easy.
Installation
.Net CLI
> dotnet add package RobotsTxtCore
NuGet
PM> Install-Package RobotsTxtCore
Usage
To specify multiple rules with the fluent interface makes it really easy.
public void ConfigureServices(IServiceCollection services) {
services.AddStaticRobotsTxt(builder =>
builder
.AddSection(section =>
section
.AddComment("Allow Googlebot")
.AddUserAgent("Googlebot")
.Allow("/")
)
.AddSection(section =>
section
.AddComment("Disallow the rest")
.AddUserAgent("*")
.AddCrawlDelay(TimeSpan.FromSeconds(10))
.Disallow("/")
)
.AddSitemap("https://example.com/sitemap.xml")
);
}
public void Configure(IApplicationBuilder app) {
app.UseRobotsTxt();
}
Output
# Allow Googlebot
User-agent: Googlebot
Allow: /
# Disallow the rest
User-agent: *
Disallow: /
Crawl-delay: 10
Sitemap: https://example.com/sitemap.xml
Or if you just want to deny everyone.
public void ConfigureServices(IServiceCollection services) {
services.AddStaticRobotsTxt(builder =>
builder
.DenyAll()
);
}
public void Configure(IApplicationBuilder app) {
app.UseRobotsTxt();
}
Output
User-agent: *
Disallow: /
IRobotsTxtProvider
IRobotsTxtProvider
allows for dynamicly configuring the Robots.txt output depending
on your case. It could be used to read from config, to check a database setting or
perhaps which environment your application is currently running in.
public class CoolRobotsTxtProvider : IRobotsTxtProvider {
private readonly CoolContext _context;
public CoolRobotsTxtProvider(CoolContext context) {
_context = context;
}
public Task<RobotsTxtResult> GetResultAsync(CancellationToken cancellationToken) {
var settings = await _context.Settings.FirstAsync();
var builder = new RobotsTxtOptionsBuilder();
string content;
if(settings.RobotsTxt.AllowAll)
content = builder.AllowAll().Build().ToString();
else
content = builder.DenyAll().Build().ToString();
var buffer = Encoding.UTF8.GetBytes(content).AsMemory();
return new RobotsTxtResult(buffer, settings.RobotsTxt.MaxAge);
}
}
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp3.1 is compatible. |
-
.NETCoreApp 3.1
- No dependencies.
-
net5.0
- No dependencies.
-
net6.0
- No dependencies.
NuGet packages (2)
Showing the top 2 NuGet packages that depend on RobotsTxtCore:
Package | Downloads |
---|---|
Apprio.Enablement.Web.Api
Package Description |
|
Kros.CqrsTemplate
Package Description |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on RobotsTxtCore:
Repository | Stars |
---|---|
Deali-Axy/StarBlog
☀☀功能完整的博客系统。后端基于.Net6+AspNetCore框架,遵循RESTFul接口规范,前端基于Vue+ElementUI开发,搭配全套开发笔记文章,可作为 .Net Core 入门项目学习~
|
Version | Downloads | Last updated |
---|---|---|
3.1.0-preview1 | 6,263 | 10/16/2023 |
3.0.0 | 127,423 | 10/1/2023 |
2.2.0 | 101,002 | 12/24/2022 |
2.1.1 | 44,259 | 6/24/2022 |
2.0.0 | 62,091 | 11/18/2021 |
2.0.0-preview3 | 382 | 9/11/2021 |
2.0.0-preview2 | 328 | 9/9/2021 |
2.0.0-preview1 | 293 | 9/9/2021 |
1.1.0 | 268,949 | 8/11/2019 |
1.0.1 | 6,654 | 2/27/2018 |
1.0.0 | 1,073 | 2/24/2018 |
1.0.0-beta-2 | 975 | 1/2/2018 |
1.0.0-beta-1 | 928 | 12/29/2017 |