mirror of
https://github.com/woodchen-ink/random-api-go.git
synced 2025-07-18 13:52:02 +08:00
refactor(api_handler): improve source info extraction and logging
This commit is contained in:
parent
f68fa981ce
commit
887e8a7ca8
@ -27,14 +27,17 @@ func HandleAPIRequest(w http.ResponseWriter, r *http.Request) {
|
|||||||
realIP := utils.GetRealIP(r)
|
realIP := utils.GetRealIP(r)
|
||||||
referer := r.Referer()
|
referer := r.Referer()
|
||||||
|
|
||||||
var sourceDomain string
|
// 修改这部分,获取完整的referer信息
|
||||||
|
sourceInfo := "direct"
|
||||||
if referer != "" {
|
if referer != "" {
|
||||||
if parsedURL, err := url.Parse(referer); err == nil {
|
if parsedURL, err := url.Parse(referer); err == nil {
|
||||||
sourceDomain = parsedURL.Hostname()
|
// 包含主机名和路径
|
||||||
|
sourceInfo = parsedURL.Host + parsedURL.Path
|
||||||
|
// 如果有查询参数,也可以加上
|
||||||
|
if parsedURL.RawQuery != "" {
|
||||||
|
sourceInfo += "?" + parsedURL.RawQuery
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if sourceDomain == "" {
|
|
||||||
sourceDomain = "direct"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
path := strings.TrimPrefix(r.URL.Path, "/")
|
path := strings.TrimPrefix(r.URL.Path, "/")
|
||||||
@ -77,7 +80,7 @@ func HandleAPIRequest(w http.ResponseWriter, r *http.Request) {
|
|||||||
|
|
||||||
duration := time.Since(start)
|
duration := time.Since(start)
|
||||||
log.Printf("请求:%s %s,来自 %s -来源:%s -持续时间: %v - 重定向至: %s",
|
log.Printf("请求:%s %s,来自 %s -来源:%s -持续时间: %v - 重定向至: %s",
|
||||||
r.Method, r.URL.Path, realIP, sourceDomain, duration, randomURL)
|
r.Method, r.URL.Path, realIP, sourceInfo, duration, randomURL)
|
||||||
|
|
||||||
http.Redirect(w, r, randomURL, http.StatusFound)
|
http.Redirect(w, r, randomURL, http.StatusFound)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user