diff --git a/base/web/serve.go b/base/web/serve.go index e446c0f1..d35f1e19 100644 --- a/base/web/serve.go +++ b/base/web/serve.go @@ -117,7 +117,7 @@ func _serve_handle(key string, cmd *ice.Command, msg *ice.Message, w http.Respon _serve_params(msg, r.URL.Path) // 请求地址 - msg.Option(ice.MSG_USERWEB, kit.Select(msg.Conf(SHARE, kit.Keym(kit.MDB_DOMAIN)), r.Header.Get("Referer"))) + msg.Option(ice.MSG_USERWEB, kit.Select(msg.Conf(SPACE, kit.Keym(kit.MDB_DOMAIN)), kit.Select(r.Header.Get("X-Host"), r.Header.Get("Referer")))) msg.Option(ice.MSG_USERUA, r.Header.Get("User-Agent")) msg.Option(ice.MSG_USERIP, r.Header.Get(ice.MSG_USERIP)) if msg.R, msg.W = r, w; r.Header.Get("X-Real-Port") != "" { diff --git a/meta.go b/meta.go index 397c1949..86074325 100644 --- a/meta.go +++ b/meta.go @@ -161,8 +161,12 @@ func (m *Message) Copy(msg *Message, arg ...string) *Message { } for _, k := range msg.meta[MSG_OPTION] { - m.Set(MSG_OPTION, k) - m.Add(MSG_OPTION, kit.Simple(k, msg.meta[k])...) + if v, ok := msg.data[k]; ok { + m.data[k] = v + } else { + m.Set(MSG_OPTION, k) + m.Add(MSG_OPTION, kit.Simple(k, msg.meta[k])...) + } } for _, k := range msg.meta[MSG_APPEND] { if i := kit.IndexOf(m.meta[MSG_OPTION], k); i > -1 {