From 1273b3d3a985e0aeb88c632e27d0e8dbc8dd2e19 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sun, 21 Sep 2014 19:39:10 -0400 Subject: [PATCH] Support custom robots.txt --- cmd/web.go | 9 +++++++++ modules/setting/setting.go | 3 +++ 2 files changed, 12 insertions(+) diff --git a/cmd/web.go b/cmd/web.go index 83dfca4e67..a5ebf259ea 100644 --- a/cmd/web.go +++ b/cmd/web.go @@ -364,6 +364,15 @@ func runWeb(*cli.Context) { r.Any("/:reponame/*", ignSignInAndCsrf, repo.Http) }) + // robots.txt + m.Get("/robots.txt", func(ctx *middleware.Context) { + if setting.HasRobotsTxt { + ctx.ServeFile(path.Join(setting.CustomPath, "robots.txt")) + } else { + ctx.Error(404) + } + }) + // Not found handler. m.NotFound(routers.NotFound) diff --git a/modules/setting/setting.go b/modules/setting/setting.go index a1ab43d022..67e48108d9 100644 --- a/modules/setting/setting.go +++ b/modules/setting/setting.go @@ -108,6 +108,7 @@ var ( ProdMode bool RunUser string IsWindows bool + HasRobotsTxt bool ) func init() { @@ -260,6 +261,8 @@ func NewConfigContext() { Langs = Cfg.MustValueArray("i18n", "LANGS", ",") Names = Cfg.MustValueArray("i18n", "NAMES", ",") + + HasRobotsTxt = com.IsFile(path.Join(CustomPath, "robots.txt")) } var Service struct {