View difference between Paste ID: 3T1aw1xC and giq57K3H
SHOW: | | - or go back to the newest paste.
1
package main
2
3
import(
4
  "io"
5
  "net/http"
6
  "io/ioutil"
7
  "strings"
8
  "os"
9-
  "os/exec"
9+
10
)
11
12
func ServeFile(w http.ResponseWriter, req *http.Request) {
13
  w.Header().Set("Strict-Transport-Security","max-age=315360000")
14
  address := req.Host
15
  parts := strings.Split(address,".")
16
  subdomain := parts[0]
17
  if subdomain == "www" && address !="www.domain.tld" {
18
    parts[0] = ""
19
    //io.WriteString(w,strings.Join(parts,"."))
20
    http.Redirect(w,req,"https://" + strings.TrimLeft(strings.Join(parts,".") + req.RequestURI,"."),http.StatusMovedPermanently)
21
  } else {
22
    if address == "domain.tld" {
23
      subdomain = "www"
24
    }
25
    path := "html/" + subdomain + req.RequestURI
26
    stat, err := os.Stat(path)
27
    if err==nil {
28
      if stat.IsDir() {
29
        if !strings.HasSuffix(path,"/") {
30
          path = path + "/"
31
        }
32
        stat,err := os.Stat(path + "index.gparse")
33
        if err==nil {
34
          path = path + "index.gparse"
35
        } else {
36
          path = path + "index.html"
37
        }
38
      }
39
      if strings.HasSuffix(path,".gparse") {
40
        //need that code here
41
      } else {
42
        content, err := ioutil.ReadFile(path)
43
        if err != nil {
44
          fmt.Println(err)
45
        } else {
46
  	      //io.WriteString(w,req.Host)
47
          io.WriteString(w,string(content))
48
        }
49
      }
50
    } else {
51
      w.WriteHeader(http.StatusNotFound)
52
      io.WriteString(w,"404 Not found! You are at: " + req.Host)
53
    }
54
  }
55
}
56
57
func RedToHttps(w http.ResponseWriter, req *http.Request) {
58
  http.Redirect(w,req,"https://" + req.Host + req.RequestURI, http.StatusMovedPermanently)
59
}
60
61
func main() {
62
  http.HandleFunc("/",ServeFile)
63
  go http.ListenAndServeTLS(":443","cert.pem","privkey.pem",nil)
64
  http.ListenAndServe(":80",http.HandlerFunc(RedToHttps))
65
}