SoFunction
Updated on 2025-03-04

Golang implements http server to handle static files

package main
import (
    "flag"
    "log"
    "net/http"
    "os"
    "path"
    "strconv"
)
var dir string
var port int
var indexs []string
// Initialize parameters
func init() {
    dir = ([0])
(&port, "port", 80, "server port")
    ()
    indexs = []string{"", ""}
}
func main() {
    ("/", StaticServer)
    err := (":"+(port), nil)
    if err != nil {
        ("ListenAndServe: ", err)
    }
}
// Static file processing
func StaticServer(w , req *) {
    file := dir +
    fi, err := (file)
    if (err) {
        (w, req)
        return
    }
    if err != nil {
        (w, (), 500)
        return
    }
    if () {
        if [len()-1] != '/' {
            (w, req, +"/", 301)
            return
        }
        for _, index := range indexs {
            fi, err = (file + index)
            if err != nil {
                continue
            }
            (w, req, file+index)
            return
        }
        (w, req)
        return
    }
    (w, req, file)
}