yatwiki2-compatible /view/ endpoint urls
This commit is contained in:
parent
19b8fdb504
commit
187f8b8417
@ -121,6 +121,14 @@ func (this *WikiServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
||||
if err != nil {
|
||||
|
||||
if err == sql.ErrNoRows {
|
||||
// Yatwiki2 always required a trailing slash at the end of the URL
|
||||
// If this was an old link, it might not be present.
|
||||
// Redirect if possible
|
||||
if len(articleTitle) > 0 && articleTitle[len(articleTitle)-1] == '/' {
|
||||
this.serveRedirect(w, this.opts.ExpectBaseURL+"view/"+url.QueryEscape(articleTitle[0:len(articleTitle)-1]))
|
||||
return
|
||||
}
|
||||
|
||||
this.serveErrorHTMLMessage(w, this.noSuchArticleError(articleTitle))
|
||||
return
|
||||
}
|
||||
@ -162,7 +170,11 @@ func (this *WikiServer) serveInternalError(w http.ResponseWriter, r *http.Reques
|
||||
}
|
||||
|
||||
func (this *WikiServer) serveErrorHTMLMessage(w http.ResponseWriter, msg template.HTML) {
|
||||
w.Header().Set("Location", this.opts.ExpectBaseURL+"view/"+url.QueryEscape(this.opts.DefaultPage)+"?error="+url.QueryEscape(string(msg)))
|
||||
this.serveRedirect(w, this.opts.ExpectBaseURL+"view/"+url.QueryEscape(this.opts.DefaultPage)+"?error="+url.QueryEscape(string(msg)))
|
||||
}
|
||||
|
||||
func (this *WikiServer) serveRedirect(w http.ResponseWriter, location string) {
|
||||
w.Header().Set("Location", location)
|
||||
w.WriteHeader(302) // moved (not permanently)
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user