Correctly show 404 page on /sitemap.xml on multi-user instances

Sitemaps are only meant for individual blogs right now, so instead
of invalid HTML getting returned, we'll properly catch the issue and
show a user-friendly "not found" page.

Fixes #941
This commit is contained in:
Matt Baer 2024-08-15 18:00:13 -04:00
parent 1dd37bc56d
commit e338880609
1 changed files with 2 additions and 0 deletions

View File

@ -314,6 +314,8 @@ func handleViewPost(app *App, w http.ResponseWriter, r *http.Request) error {
// Display reserved page if that is requested resource // Display reserved page if that is requested resource
if t, ok := pages[r.URL.Path[1:]+".tmpl"]; ok { if t, ok := pages[r.URL.Path[1:]+".tmpl"]; ok {
return handleTemplatedPage(app, w, r, t) return handleTemplatedPage(app, w, r, t)
} else if r.URL.Path == "/sitemap.xml" && !app.cfg.App.SingleUser {
return impart.HTTPError{Status: http.StatusNotFound, Message: "Page not found."}
} else if (strings.Contains(r.URL.Path, ".") && !isRaw && !isMarkdown) || r.URL.Path == "/robots.txt" || r.URL.Path == "/manifest.json" { } else if (strings.Contains(r.URL.Path, ".") && !isRaw && !isMarkdown) || r.URL.Path == "/robots.txt" || r.URL.Path == "/manifest.json" {
// Serve static file // Serve static file
app.shttp.ServeHTTP(w, r) app.shttp.ServeHTTP(w, r)