1 回答

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
使用重定向到裸域或委托給原始處理程序的處理程序包裝 TLS 服務(wù)器處理程序。
問題中的代碼使用http.DefaultServeMux作為處理程序的 TLS 服務(wù)器。這是一個(gè)處理函數(shù),可以重定向或調(diào)用 http.DefaultServeMux:
func redirectWWW(w http.ResponseWriter, r *http.Request) {
if strings.HasPrefix(r.Host, "www.") {
u := *r.URL
u.Scheme = "https"
u.Host = strings.TrimPrefix(r.Host, "www.")
http.Redirect(w, r, u.String(), http.StatusFound)
return
}
http.DefaultServeMux.ServeHTTP(w, r)
}
在 TLS 服務(wù)器中使用此處理程序:
handle.Lv.Println(http.ListenAndServeTLS(database.Config.PORT, database.Config.TLScertfile,
database.Config.TLSkeyfile, http.HandlerFunc(redirectWWW)))
- 1 回答
- 0 關(guān)注
- 162 瀏覽
添加回答
舉報(bào)