diff --git a/page_index.go b/page_index.go
index a2dced31813c44f3155f18b61b47d54231021c85..06e9ca889327cb3c4487b49aae4914c55d79121a 100644
--- a/page_index.go
+++ b/page_index.go
@@ -2,12 +2,22 @@ package main
 
 import (
 	"net/http"
+	"strings"
 )
 
 type IndexData struct {
 	User UserInfo
 }
 
+func removeFileExtensions(path string) string {
+	var i = strings.IndexByte(path, '.')
+	if i < 0 {
+		return path
+	} else {
+		return path[0:i]
+	}
+}
+
 func pageIndex(ctx PageContext) http.Handler {
 	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
 		if r.URL.Path == "/" {
@@ -33,6 +43,7 @@ func pageIndex(ctx PageContext) http.Handler {
 		} else {
 			w.Header().Set("Vary", "Accept-Encoding")
 			w.Header().Set("Cache-Control", "public, max-age=31536000")
+			r.URL.Path = removeFileExtensions(r.URL.Path)
 			ctx.Images.ServeHTTP(w, r)
 		}
 	})