rt-redirect/main.go

41 lines
735 B
Go

package main
import (
"fmt"
"log"
"net/http"
"os"
"time"
)
const (
readTimeout = 30 * time.Second
)
func main() {
port, hasPort := os.LookupEnv("PORT")
if !hasPort {
port = "8080"
}
r := http.NewServeMux()
r.Handle("/", redirectTo("https://pub-d9610a73a30e4060aaf007864420dd0f.r2.dev"))
svr := http.Server{
Addr: fmt.Sprintf(":%v", port),
Handler: r,
ReadTimeout: readTimeout,
ReadHeaderTimeout: readTimeout,
}
if err := svr.ListenAndServe(); err != nil {
log.Fatal(err)
}
}
func redirectTo(url string) http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
newURL := url + r.URL.Path
http.Redirect(w, r, newURL, http.StatusFound)
})
}