aboutsummaryrefslogtreecommitdiff
path: root/page/http.go
diff options
context:
space:
mode:
authorMitch Riedstra <mitch@riedstra.us>2019-12-22 09:46:17 -0500
committerMitch Riedstra <mitch@riedstra.us>2019-12-22 09:46:17 -0500
commitc79b18d5a7d3b47ea5db495b4d6a6faf0b7dbb11 (patch)
tree10b20a327e88eaf63eec758544595949f2343b0d /page/http.go
parent8b6467bde7e603e60e128001c3b5e43b1034c561 (diff)
downloadgo-website-c79b18d5a7d3b47ea5db495b4d6a6faf0b7dbb11.tar.gz
go-website-c79b18d5a7d3b47ea5db495b4d6a6faf0b7dbb11.tar.xz
Add support for a 404 pagev0.0.2
Diffstat (limited to 'page/http.go')
-rw-r--r--page/http.go20
1 files changed, 17 insertions, 3 deletions
diff --git a/page/http.go b/page/http.go
index acf9147..98546f6 100644
--- a/page/http.go
+++ b/page/http.go
@@ -4,6 +4,7 @@ import (
"log"
"net/http"
"path/filepath"
+ "strings"
)
func SetupHandlers() {
@@ -22,9 +23,22 @@ func PageHandler(w http.ResponseWriter, r *http.Request) {
p := &Page{Name: u}
err := p.Render(w)
if err != nil {
- log.Println(err)
- http.Error(w, "Internal server error", 500)
- return
+ if strings.HasSuffix(err.Error(), "no such file or directory") {
+ log.Printf("Page '%s' not found, trying 404", p.Name)
+ p.Name = "404"
+ w.WriteHeader(404)
+ err := p.Render(w)
+ if err != nil {
+ log.Println(err)
+ http.Error(w, "Internal server error", 500)
+ return
+ }
+ return
+ } else {
+ log.Println(err)
+ http.Error(w, "Internal server error", 500)
+ return
+ }
}
}