diff --git a/internal/web/actions/default/servers/server/settings/origins/addPopup.go b/internal/web/actions/default/servers/server/settings/origins/addPopup.go
index c06680a6..becc26ef 100644
--- a/internal/web/actions/default/servers/server/settings/origins/addPopup.go
+++ b/internal/web/actions/default/servers/server/settings/origins/addPopup.go
@@ -9,11 +9,12 @@ import (
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs"
"github.com/TeaOSLab/EdgeCommon/pkg/serverconfigs/shared"
"github.com/iwind/TeaGo/actions"
+ "net/url"
"regexp"
"strings"
)
-// 添加源站
+// AddPopupAction 添加源站
type AddPopupAction struct {
actionutils.ParentAction
}
@@ -64,10 +65,27 @@ func (this *AddPopupAction) RunPost(params struct {
Field("addr", params.Addr).
Require("请输入源站地址")
- addr := regexp.MustCompile(`\s+`).ReplaceAllString(params.Addr, "")
- portIndex := strings.LastIndex(params.Addr, ":")
+ addr := params.Addr
+
+ // 是否是完整的地址
+ if params.Protocol == "http" || params.Protocol == "https" {
+ u, err := url.Parse(addr)
+ if err == nil {
+ addr = u.Host
+ }
+ }
+
+ addr = regexp.MustCompile(`\s+`).ReplaceAllString(addr, "")
+ portIndex := strings.LastIndex(addr, ":")
if portIndex < 0 {
- this.Fail("地址中需要带有端口")
+ if params.Protocol == "http" {
+ addr += ":80"
+ } else if params.Protocol == "https" {
+ addr += ":443"
+ } else {
+ this.Fail("地址中需要带有端口")
+ }
+ portIndex = strings.LastIndex(addr, ":")
}
host := addr[:portIndex]
port := addr[portIndex+1:]
diff --git a/internal/web/actions/default/servers/server/settings/origins/updatePopup.go b/internal/web/actions/default/servers/server/settings/origins/updatePopup.go
index efdc7b9c..3e891391 100644
--- a/internal/web/actions/default/servers/server/settings/origins/updatePopup.go
+++ b/internal/web/actions/default/servers/server/settings/origins/updatePopup.go
@@ -10,11 +10,12 @@ import (
"github.com/iwind/TeaGo/actions"
"github.com/iwind/TeaGo/maps"
"github.com/iwind/TeaGo/types"
+ "net/url"
"regexp"
"strings"
)
-// 修改源站
+// UpdatePopupAction 修改源站
type UpdatePopupAction struct {
actionutils.ParentAction
}
@@ -118,10 +119,27 @@ func (this *UpdatePopupAction) RunPost(params struct {
Field("addr", params.Addr).
Require("请输入源站地址")
- addr := regexp.MustCompile(`\s+`).ReplaceAllString(params.Addr, "")
- portIndex := strings.LastIndex(params.Addr, ":")
+ addr := params.Addr
+
+ // 是否是完整的地址
+ if params.Protocol == "http" || params.Protocol == "https" {
+ u, err := url.Parse(addr)
+ if err == nil {
+ addr = u.Host
+ }
+ }
+
+ addr = regexp.MustCompile(`\s+`).ReplaceAllString(addr, "")
+ portIndex := strings.LastIndex(addr, ":")
if portIndex < 0 {
- this.Fail("地址中需要带有端口")
+ if params.Protocol == "http" {
+ addr += ":80"
+ } else if params.Protocol == "https" {
+ addr += ":443"
+ } else {
+ this.Fail("地址中需要带有端口")
+ }
+ portIndex = strings.LastIndex(addr, ":")
}
host := addr[:portIndex]
port := addr[portIndex+1:]
diff --git a/web/views/@default/servers/addPortPopup.html b/web/views/@default/servers/addPortPopup.html
index 8e3695da..b7e7c9c8 100644
--- a/web/views/@default/servers/addPortPopup.html
+++ b/web/views/@default/servers/addPortPopup.html
@@ -7,7 +7,7 @@
| 网络协议 |
- |
@@ -17,8 +17,8 @@
|
diff --git a/web/views/@default/servers/addPortPopup.js b/web/views/@default/servers/addPortPopup.js
index d01a6736..5935326a 100644
--- a/web/views/@default/servers/addPortPopup.js
+++ b/web/views/@default/servers/addPortPopup.js
@@ -6,6 +6,11 @@ Tea.context(function () {
this.address = ""
this.protocol = this.protocols[0].code
+ // 初始化
+ if (this.protocol == "http") {
+ this.address = "80"
+ }
+
if (window.parent.UPDATING_ADDR != null) {
this.isUpdating = true
let addr = window.parent.UPDATING_ADDR
@@ -16,4 +21,18 @@ Tea.context(function () {
this.address = addr.host + ":" + addr.portRange
}
}
+
+ this.changeProtocol = function () {
+ switch (this.protocol) {
+ case "http":
+ this.address = "80"
+ break
+ case "https":
+ this.address = "443"
+ }
+ }
+
+ this.addPort = function (port) {
+ this.address = port
+ }
});
\ No newline at end of file
diff --git a/web/views/@default/servers/server/settings/http/index.html b/web/views/@default/servers/server/settings/http/index.html
index 70d4ff7c..728f330f 100644
--- a/web/views/@default/servers/server/settings/http/index.html
+++ b/web/views/@default/servers/server/settings/http/index.html
@@ -21,6 +21,7 @@
| 绑定端口 * |
+ 还没有添加端口绑定,会导致HTTP服务无法访问。
|
diff --git a/web/views/@default/servers/server/settings/https/index.html b/web/views/@default/servers/server/settings/https/index.html
index 1cf3fd11..9c4d79c0 100644
--- a/web/views/@default/servers/server/settings/https/index.html
+++ b/web/views/@default/servers/server/settings/https/index.html
@@ -25,6 +25,7 @@
| 绑定端口 * |
+ 还没有添加端口绑定,会导致HTTPS服务无法访问。
|
diff --git a/web/views/@default/servers/server/settings/origins/addPopup.html b/web/views/@default/servers/server/settings/origins/addPopup.html
index ca6172d5..cb496847 100644
--- a/web/views/@default/servers/server/settings/origins/addPopup.html
+++ b/web/views/@default/servers/server/settings/origins/addPopup.html
@@ -10,7 +10,7 @@
源站协议 |
-
+
@@ -25,7 +25,7 @@
| 源站地址 * |
-
+
|
diff --git a/web/views/@default/servers/server/settings/origins/addPopup.js b/web/views/@default/servers/server/settings/origins/addPopup.js
new file mode 100644
index 00000000..af257dc8
--- /dev/null
+++ b/web/views/@default/servers/server/settings/origins/addPopup.js
@@ -0,0 +1,18 @@
+Tea.context(function () {
+ this.addr = ""
+ this.protocol = ""
+
+ if (this.isHTTP) {
+ this.protocol = "http"
+ }
+
+ this.changeAddr = function () {
+ if (this.serverType == "httpProxy") {
+ if (this.addr.startsWith("http://")) {
+ this.protocol = "http"
+ } else if (this.addr.startsWith("https://")) {
+ this.protocol = "https"
+ }
+ }
+ }
+})
\ No newline at end of file
diff --git a/web/views/@default/servers/server/settings/origins/updatePopup.html b/web/views/@default/servers/server/settings/origins/updatePopup.html
index a71ab66d..ce19173f 100644
--- a/web/views/@default/servers/server/settings/origins/updatePopup.html
+++ b/web/views/@default/servers/server/settings/origins/updatePopup.html
@@ -27,7 +27,7 @@
| 源站地址 |
-
+
|
diff --git a/web/views/@default/servers/server/settings/origins/updatePopup.js b/web/views/@default/servers/server/settings/origins/updatePopup.js
new file mode 100644
index 00000000..5502d366
--- /dev/null
+++ b/web/views/@default/servers/server/settings/origins/updatePopup.js
@@ -0,0 +1,11 @@
+Tea.context(function () {
+ this.changeAddr = function () {
+ if (this.serverType == "httpProxy") {
+ if (this.origin.addr.startsWith("http://")) {
+ this.origin.protocol = "http"
+ } else if (this.origin.addr.startsWith("https://")) {
+ this.origin.protocol = "https"
+ }
+ }
+ }
+})
\ No newline at end of file
|