рдореИрдВ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЗ рдкреБрд░рд╛рдиреЗ WebForms рднрд╛рдЧреЛрдВ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд▓рдЧрд╛ рд░рд╣рд╛ рд╣реВрдБ рдЬреЛ рдЕрднреА рднреА ASP.NET Core рдФрд░ Azure App Services рдкрд░ рдирдВрдЧреЗ рдзрд╛рддреБ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рдореИрдВ рдпрд╣ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдБ рдХрд┐ рдореЗрд░реА рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рд╕рд╛рдЗрдЯреЗрдВ рди рдорд┐рд▓реЗрдВ Google / рдмрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреНрд░рдорд┐рддред
рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ robots.txt рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд╣ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛ рдФрд░ рдЕрдиреНрдп рдЬреЛ рд╡рд┐рдХрд╛рд╕ рдпрд╛ рдордВрдЪрди рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реЛрдВред рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред рдореИрдВ рдЕрдкрдиреЗ рд╕реНрдерд┐рд░ Azio DevOps CI / CD рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдХреЗ рджреМрд░рд╛рди рдПрдХ рд╕реНрдерд┐рд░ robots.txt рдФрд░ рджреВрд╕рд░реЗ рд░реЛрдмреЛрдЯ-staging.txt рдФрд░ рджреВрд╕рд░реЗ рдкрд░ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдХреЙрдкреА рдХрд░ рд╕рдХрддрд╛ рдерд╛ред
рддрдм рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╕рдВрднрд╡ рдЪреАрдЬ рд╕рд┐рд░реНрдл рд░реЛрдмреЛрдЯ рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рдХрд╕реНрдЯрдо рдорд┐рдбрд▓рд╡реЗрдпрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рдкрд░реЗрд╢рд╛рдиреА рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЕрдзрд┐рдХ рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереАред рдореИрдВ рдмрд╕ рдпрд╣ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рд╕рд░рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

- рдЖрдк рдЗрд╕реЗ рдПрдХ рдЗрдирд▓рд╛рдЗрди рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рд╕рд┐рд░реНрдл рд▓реИрдореНрдмреНрдбрд╛ рдФрд░ рдлрдВрдХ рдФрд░ рд▓рд╛рдЗрдирдХ рдХреЛ рдПрдХ рд╣реА рд▓рд╛рдЗрди рдкрд░ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
- рдЖрдк рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдорд┐рдбрд▓рд╡реЗрдпрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╡рд┐рдХрд▓реНрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЗрд╕реЗ env.IsStaging (), рдЖрджрд┐ рдкрд░ рд╕рдХреНрд░рд┐рдп рдХрд░реЗрдВред
- рдЖрдк рдкрд░реНрдпрд╛рд╡рд░рдг рдЯреИрдЧрд╣реЗрд▓рд░реНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдХрд▓ рд░реЗрдЬрд░ рдкреЗрдЬ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдкрд┐рдЫрд▓реЗ рдПрдХ рдЖрд╕рд╛рди рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рднреА рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ cshtml рдХреЛ рдмрд┐рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ RobotsTxt.cshtml рд╕рд┐рдВрдЧрд▓ рд░реЗрдЬрд░ рдкреЗрдЬ рдмрдирд╛рдпрд╛ред рдХреЛрдИ рдкреГрд╖реНрда рдореЙрдбрд▓ рдирд╣реАрдВ, рдХреЛрдИ рдХреЛрдб рдкреАрдЫреЗ рдирд╣реАрдВред рдлрд┐рд░ рдореИрдВрдиреЗ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдЯ-рдЗрди рдЗрдирд╡рд╛рдпрд░рдореЗрдВрдЯ рдЯреИрдЧ рд╣реЗрд▓реНрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрд╣ рднреА рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдореИрдВрдиреЗ рдорд╛рдЗрдо рдЯрд╛рдЗрдк рдХреЛ рдЯреЗрдХреНрд╕реНрдЯ / рдкреНрд▓реЗрди рдкрд░ рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рд▓реЗрдЖрдЙрдЯ рдкреЗрдЬ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдХреЗрд▓реЗ рдЦрдбрд╝реЗ рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
@page @{ Layout = null; this.Response.ContentType = "text/plain"; } # /robots.txt file for http://www.hanselman.com/ User-agent: * <environment include="Development,Staging">Disallow: /</environment> <environment include="Production">Disallow: /blog/private Disallow: /blog/secret Disallow: /blog/somethingelse</environment>
рдореИрдВ рддрдм рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реЗ рд╕реНрдЯреЗрдЬрд┐рдВрдЧ рдФрд░ / рдпрд╛ рдкреНрд░реЛрдбрдХреНрд╢рди рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ ASPNETCORE_ENVIRONMENT рд╡реИрд░рд┐рдПрдмрд▓ рдЙрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕реЗрдЯ рд╣реИрдВред

рдореИрдВ рдпрд╣ рднреА рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рд╡рд┐рд╖рдо рд░рд┐рдХреНрддрд┐ рдХреА рддрд░рд╣ рдХреНрдпрд╛ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЯреИрдЧрд╣реЗрд▓реНрдкрд░реНрд╕ рдХреЗ рдЦрд┐рд▓рд╛рдл рдХреИрд╕реЗ рдХреБрдЫ рдкрд╛рда рдмреНрдпреВрдЯреЗрдб рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдПрдХ рдЯреИрдЧ рд╣реЗрд▓реНрдкрд░ рдХрд╛ рдЯреИрдЧ рдХрднреА-рдХрднреА "рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ" (рдЙрддреНрддрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ) рдЬрдм рдЗрд╕рдХреА рдмрд╛рдд рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд╡реНрд╣рд╛рдЯреНрд╕рдПрдк рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдПрдЬреЗрдВрдЯ: * рдХреЗ рдкрд╛рд╕ рдПрдХ рдкрдВрдХреНрддрд┐ рд╣реЛ, рдФрд░ рдлрд┐рд░ рдЕрдЧрд▓реА рдкрдВрдХреНрддрд┐ рдореЗрдВ рддреБрд░рдВрдд рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд╕реНрд╡реАрдХреГрдд рдХрд░реЗрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкреНрд░реАрдЯрд┐рдпрд░ рд╕реЛрд░реНрд╕ рдХреЛрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░реА рд▓рд╛рдЗрди рдкрд░ рд╢реБрд░реВ рд╣реЛ, рдпрд╣ рддрдм рдПрдХ рд╕рд╣реА рдлрд╛рдЗрд▓ рдирд╣реАрдВ рд╣реИред рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рддрдВрдЧ рдФрд░ рд╕рдм рд╕реЗ рдКрдкрд░ рд╣реЛ, рд╕рд╣реАред рдпрд╣ рдордВрдЪрди рдХреЗ рд▓рд┐рдП рд╣реИ:
User-agent: * Disallow: /
рдпрд╣ рдЕрдм рдореБрдЭреЗ / robotsstxt рдкрд░ рдПрдХ robots.txt рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди /robots.txt рдкрд░ рдирд╣реАрдВред рдореБрджреНрджрд╛ рджреЗрдЦреЗрдВ? Robots.txt рдПрдХ рдлрд╝рд╛рдЗрд▓ (рдпрд╛ рдПрдХ рдирдХрд▓реА) рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ RobotsTxt.cshtml рдирд╛рдордХ рд░реЗрдЬрд░ рдкреЗрдЬ рдХреЗ рд▓рд┐рдП /robots.txt рдХреЗ рдЕрдиреБрд░реЛрдз рд╕реЗ рдПрдХ рдорд╛рд░реНрдЧ рдХреЛ рдореИрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдореИрдВ рдЕрдкрдиреЗ Startup.cs рдореЗрдВ рдПрдХ RazorPagesOptions рдЬреЛрдбрд╝ рджреЗрддрд╛ рд╣реВрдВ рдЬреЛ рдПрдХ рдХрд╕реНрдЯрдо рдкреЗрдЬрд░реВрдЯ рдХреЗ рд╕рд╛рде рд╣реИ рдЬреЛ /robots.txt рдХреЛ / robotstxt рдкрд░ рдореИрдк рдХрд░рддрд╛ рд╣реИред (рдореИрдВ рд╣рдореЗрд╢рд╛ рдЗрд╕ рдПрдкреАрдЖрдИ рдХреЛ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░реЗрд╢рд╛рди рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, IMHO, рдЬреИрд╕реЗ ("рд╕реЗ", "рд╕реЗ") рдЙрд▓рдЯрд╛ рд╣реЛ, рддреЛ рдЙрд╕рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░ рджреЗрдЦреЛ, рдРрд╕рд╛ рди рд╣реЛ рдХрд┐ рдЖрдк рджрд╕ рдорд┐рдирдЯ рдмрд░реНрдмрд╛рдж рдХрд░ рджреЗрдВ рдЬреИрд╕реЗ рдореИрдВрдиреЗ рдЕрднреА рдХрд┐рдпрд╛ред
public void ConfigureServices(IServiceCollection services) { services.AddMvc() .AddRazorPagesOptions(options => { options.Conventions.AddPageRoute("/robotstxt", "/Robots.Txt"); }); }
рдФрд░ рд╡рд╣ рдпрд╣ рд╣реИ! рд╕рд░рд▓ рдФрд░ рд╕рд╛рдлред
рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдХреИрд╢рд┐рдВрдЧ рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рддреЛ рдПрдХ рдмрдбрд╝реЗ рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ cshtml рдкреЗрдЬ рдореЗрдВ рднреА
context.Response.Headers.Add("Cache-Control", $"max-age=SOMELARGENUMBEROFSECONDS");
рд▓реЗрдХрд┐рди рдореИрдВ рдкрд╛рдардХ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрд╕ рдЫреЛрдЯреЗ рдЕрдиреБрдХреВрд▓рди рдХреЛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред
рдЕрджреНрдпрддрди: рдореИрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХреЗ рдмрд╛рдж рдореИрдВ GitHub рдкрд░ рдЗрд╕ robots.txt рдорд┐рдбрд▓рд╡реЗрдпрд░ рдФрд░ NuGet рдХреЛ рдорд┐рд▓рд╛ред рдореИрдВ рдЕрднреА рднреА рдЕрдкрдиреЗ рдХреЛрдб рд╕реЗ рдЦреБрд╢ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдХреЛрдИ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдХреА рдЕрдзрд┐рдХ рдкрд░рд┐рд╖реНрдХреГрдд рдЬрд░реВрд░рддреЛрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рджреВрд░ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред
рдЖрдк рдЕрдкрдиреА robots.txt рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рд╕рдВрднрд╛рд▓рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдкрдХреЗ рдкрд╛рд╕ рднреА рд╣реИ?