diff --git a/internal/web/actions/default/servers/server/settings/redirects/createPopup.go b/internal/web/actions/default/servers/server/settings/redirects/createPopup.go index 49cd52c0..68a8b0ea 100644 --- a/internal/web/actions/default/servers/server/settings/redirects/createPopup.go +++ b/internal/web/actions/default/servers/server/settings/redirects/createPopup.go @@ -52,7 +52,11 @@ func (this *CreatePopupAction) RunPost(params struct { PortAfter int PortAfterScheme string - Status int + Status int + + ExceptDomainsJSON []byte + OnlyDomainsJSON []byte + CondsJSON []byte IsOn bool @@ -186,6 +190,27 @@ func (this *CreatePopupAction) RunPost(params struct { Field("status", params.Status). Gte(0, "请选择正确的跳转状态码") + // 域名 + if len(params.ExceptDomainsJSON) > 0 { + var exceptDomains = []string{} + err := json.Unmarshal(params.ExceptDomainsJSON, &exceptDomains) + if err != nil { + this.ErrorPage(err) + return + } + config.ExceptDomains = exceptDomains + } + + if len(params.OnlyDomainsJSON) > 0 { + var onlyDomains = []string{} + err := json.Unmarshal(params.OnlyDomainsJSON, &onlyDomains) + if err != nil { + this.ErrorPage(err) + return + } + config.OnlyDomains = onlyDomains + } + // 校验匹配条件 var conds *shared.HTTPRequestCondsConfig if len(params.CondsJSON) > 0 { diff --git a/web/public/js/components/server/http-host-redirect-box.js b/web/public/js/components/server/http-host-redirect-box.js index fbc70cee..f629ceeb 100644 --- a/web/public/js/components/server/http-host-redirect-box.js +++ b/web/public/js/components/server/http-host-redirect-box.js @@ -45,7 +45,7 @@ Vue.component("http-host-redirect-box", { teaweb.popup("/servers/server/settings/redirects/createPopup", { width: "50em", - height: "30em", + height: "36em", callback: function (resp) { that.id++ resp.data.redirect.id = that.id @@ -60,7 +60,7 @@ Vue.component("http-host-redirect-box", { teaweb.popup("/servers/server/settings/redirects/createPopup", { width: "50em", - height: "30em", + height: "36em", callback: function (resp) { resp.data.redirect.id = redirect.id Vue.set(that.redirects, index, resp.data.redirect) @@ -119,6 +119,8 @@ Vue.component("http-host-redirect-box", { 匹配前缀 正则匹配 精准匹配 + 排除:{{domain}} + 仅限:{{domain}}
diff --git a/web/views/@default/servers/server/settings/redirects/createPopup.html b/web/views/@default/servers/server/settings/redirects/createPopup.html index 83ac1486..a182380f 100644 --- a/web/views/@default/servers/server/settings/redirects/createPopup.html +++ b/web/views/@default/servers/server/settings/redirects/createPopup.html @@ -151,13 +151,32 @@ - 匹配条件 - - - - 启用当前跳转 - + + + + 例外域名 + + +

这些域名执行跳转。

+ + + + 仅限域名 + + +

只有这些域名执行跳转。

+ + + + 匹配条件 + + + + 启用当前跳转 + + +