reprogl

Форк
0
30 строк · 686.0 Байт
1
package middlewares
2

3
import (
4
	"net/http"
5
	"strings"
6

7
	"xelbot.com/reprogl/container"
8
)
9

10
func CDN(next http.Handler) http.Handler {
11
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
12
		if container.IsCDN(r) {
13
			if r.URL.Path == "" || r.URL.Path == "/" {
14
				w.Header().Set("Content-Type", "text/plain")
15
				w.Write([]byte("This is static assets storage"))
16

17
				return
18
			} else if r.URL.Path != "/robots.txt" &&
19
				r.URL.Path != "/sitemap.xml" &&
20
				r.URL.Path != "/headers" &&
21
				!strings.HasPrefix(r.URL.Path, "/images/avatar/") {
22
				http.Error(w, http.StatusText(http.StatusNotFound), http.StatusNotFound)
23

24
				return
25
			}
26
		}
27

28
		next.ServeHTTP(w, r)
29
	})
30
}
31

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.