ASP.NET рдХреЛрд░ рд╕рд╛рдЗрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ robots.txt рдмрдирд╛рдПрдБ

рдЕрдм рдореИрдВ рдЕрдкрдиреА рд╕рд╛рдЗрдЯ рдХреЗ рдХреБрдЫ рдкреБрд░рд╛рдиреЗ WebForm рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реВрдВ, рдЬреЛ рдЕрдм рддрдХ ASP.NET рдХреЛрд░ рдФрд░ Azure рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрд╡рд╛рдУрдВ рддрдХ рдирдВрдЧреЗ рдзрд╛рддреБ рдкрд░ рдЪрд▓рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореЗрд░реА рд╕рд╛рдЗрдЯреЗрдВ Google, рдпрд╛рдВрдбреЗрдХреНрд╕, рдмрд┐рдВрдЧ рдФрд░ рдЕрдиреНрдп рдЦреЛрдЬ рдЗрдВрдЬрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдХреНрд░рдорд┐рдд рди рд╣реЛрдВред


рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рдПрдХ robots.txt рдлрд╝рд╛рдЗрд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рдХреЗрд╡рд▓ рдЙрддреНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП, рдФрд░ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдПред рдореИрдВ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕реНрдерд┐рд░ robots.txt рдлрд╝рд╛рдЗрд▓, рдПрдХ рд░реЛрдмреЛрдЯ- staging.txt рдлрд╝рд╛рдЗрд▓ рдФрд░ рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ Azure DevOps CI / CD рдкрд╛рдЗрдкрд▓рд╛рдЗрди рдореЗрдВ рдПрдХ рдХреЗ рдКрдкрд░ рдПрдХ рдХреЙрдкреА рд╣реЛ рд╕рдХрддреА рд╣реИред


рддрдм рдореБрдЭреЗ рдорд╣рд╕реВрд╕ рд╣реБрдЖ рдХрд┐ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдХрд╛рдо рд╣реИред рдореИрдВ рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ рдорд┐рдбрд▓рд╡реЗрдпрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХреЛрдб рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░реЗрд╢рд╛рдиреА рднрд░рд╛ рдХрд╛рдо рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдореИрдВ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ рд╕рд░рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред




  • рдЖрдк рдЗрд╕реЗ рдПрдВрдмреЗрдбреЗрдб рдорд┐рдбрд▓рд╡реЗрдпрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рд╕рд┐рд░реНрдл рдПрдХ рд▓рд╛рдЗрди рдореЗрдВ рд▓реИрдореНрдмреНрдбрд╛, рдлрдВрдХ рдФрд░ рд▓рд╛рдЗрдирдХ
  • рдЖрдк рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ рдорд┐рдбрд▓рд╡реЗрдпрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрдИ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдлрд┐рд░ рдЗрд╕реЗ env.IsStaging () рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдХреЗ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╕рдХреНрд░рд┐рдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ
  • рдЖрдк TegHelpers рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдПрдХрд▓ рд░реЗрдЬрд░ рдкреЗрдЬ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ

рдЕрдВрддрд┐рдо рд╡рд┐рдХрд▓реНрдк рд╕рдмрд╕реЗ рд╕рд░рд▓ рд▓рдЧ рд░рд╣рд╛ рдерд╛ рдФрд░ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдерд╛ рдХрд┐ рдореИрдВ 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 рдЪрд░ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╕реЗрдЯ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред


ASPNETCORE_ENVIRONMENT=Staging

рдореИрдВ рдпрд╣ рднреА рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдПрдХ рд╡рд┐рд╖рдо рдЕрдВрддрд░ рдХреИрд╕реЗ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдХреИрд╕реЗ рдХреБрдЫ рдкрд╛рда рдЯреИрдЧрд╣реЗрд▓реНрдкрд░реНрд╕ рдкрд░ рдЯрд┐рдХреА рд╣реБрдИ рд╣реИред рдпрд╛рдж рд░рдЦреЗрдВ рдХрд┐ рдЯреИрдЧрд╣реЗрд▓реНрдкрд░ рдЯреИрдЧ рдХрднреА-рдХрднреА "рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ" (рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ) рдЬрдм рдпрд╣ рдЕрдкрдирд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдВрддрд░рд╛рд▓ рдЗрд╕рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рд░рд╣рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдпреВрдЬрд░-рдПрдЬреЗрдВрдЯ: * рдХреЗ рдкрд╛рд╕ рдПрдХ рд▓рд╛рдЗрди рд╣реЛ, рдФрд░ рдлрд┐рд░ Disallow рддреБрд░рдВрдд рдЕрдЧрд▓реА рд▓рд╛рдЗрди рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реНрд░реЛрдд рдХреЛрдб рдкреНрд░реАрдЯрд┐рдпрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рд▓рд╛рдЗрди рдкрд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЧрд▓рдд рдлрд╝рд╛рдЗрд▓ рд╣реЛрдЧреАред рдореИрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рд╕рд╣реА рд╣реЛред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ:


 User-agent: * Disallow: / 

рдпрд╣ рдореБрдЭреЗ robots.txt рдлрд╝рд╛рдЗрд▓ / рд░реЛрдмреЛрдЯрд╕реНрдЯреЗрдХреНрдЯ рдореЗрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди /robots.txt рдореЗрдВ рдирд╣реАрдВред рдЧрд▓рддреА рджреЗрдЦрд┐рдП? Robots.txt рдПрдХ (рдирдХрд▓реА) рдлрд╝рд╛рдЗрд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ RobotsTxt.cshtml рдирд╛рдо рдХреЗ рд░реЗрдЬрд╝рд░ рдкреГрд╖реНрда рдкрд░ /robots.txt рдХреЗ рдЕрдиреБрд░реЛрдз рд╕реЗ рдорд╛рд░реНрдЧ рдХреЛ рдореИрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред


рдпрд╣рд╛рдБ рдореИрдВ рдЕрдкрдиреЗ Startup.cs рдореЗрдВ RazorPagesOptions рдХреЛ рдПрдХ рдХрд╕реНрдЯрдо PageRoute рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рдЬреЛ /robots.txt рдХреЛ / robotstxt рдкрд░ рдореИрдк рдХрд░рддрд╛ рд╣реИред (рдореИрдВ рд╣рдореЗрд╢рд╛ рдЗрд╕ рдПрдкреАрдЖрдИ рдХреЛ рдХрд╖реНрдЯрдкреНрд░рдж рдкрд╛рдпрд╛, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ, рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, ("рд╕реЗ", "рд╕реЗ") рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЖрдк рджрд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд┐рдирдЯ рдЦрд░реНрдЪ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрднреА рдХрд┐рдпрд╛ рд╣реИ) ред


 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"); 

рд▓реЗрдХрд┐рди рдореИрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдПрдХ рдЕрднреНрдпрд╛рд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕ рдЫреЛрдЯреЗ рдЕрдиреБрдХреВрд▓рди рдХреЛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред


рдЕрджреНрдпрддрди рдХрд░реЗрдВ: рдЬрдм рдореИрдВрдиреЗ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░ рд▓рд┐рдпрд╛, рддреЛ рдореБрдЭреЗ рдпрд╣ рдорд┐рдбрд┐рд▓рд╡реЗрдпрд░ рд░реЛрдмреЙрдЯреНрд╕.рдЯреЗрдХреНрд╕реНрдЯ рдФрд░ рдиреБрдЧреЗрдЯ рдЧреАрдерд╣рдм рдкрд░ рдорд┐рд▓рд╛ред рдореИрдВ рдЕрднреА рднреА рдЕрдкрдиреЗ рдХреЛрдб рд╕реЗ рдЦреБрд╢ рд╣реВрдВ рдФрд░ рдмрд╛рд╣рд░реА рдирд┐рд░реНрднрд░рддрд╛ рдХреА рдЕрдиреБрдкрд╕реНрдерд┐рддрд┐ рдХрд╛ рдзреНрдпрд╛рди рдирд╣реАрдВ рд░рдЦрддрд╛ (рдмрд╛рд╣рд░реА рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рдореЗрд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ), рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдХреЗ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдХрд╛рд░реНрдпреЛрдВ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд░рдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реИред


Source: https://habr.com/ru/post/hi457184/


All Articles