aboutsummaryrefslogtreecommitdiff
path: root/page/http.go
diff options
context:
space:
mode:
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
+ }
}
}