修复自定义域名的问题

This commit is contained in:
ExplodingDragon
2025-04-15 20:45:45 +08:00
parent 1fd4dc4ef0
commit 036569ac5f
4 changed files with 13 additions and 7 deletions

View File

@@ -21,7 +21,7 @@ func NewDomainAlias(config utils.Config) *DomainAlias {
}
func (a *DomainAlias) Query(domain string) (*Alias, error) {
get, err := a.config.Get("alias/" + domain)
get, err := a.config.Get("domain/alias/" + domain)
if err != nil {
return nil, err
}
@@ -42,9 +42,9 @@ func (a *DomainAlias) Bind(domain, owner, repo, branch string) error {
if err != nil {
return err
}
return a.config.Put("domain/"+domain, string(saveB), utils.TtlKeep)
return a.config.Put("domain/alias/"+domain, string(saveB), utils.TtlKeep)
}
func (a *DomainAlias) Unbind(domain string) error {
return a.config.Delete("domain/" + domain)
return a.config.Delete("domain/alias/" + domain)
}

View File

@@ -66,7 +66,7 @@ func (p *PageDomain) ParseDomainMeta(domain, path, branch string) (*PageDomainCo
if !strings.HasSuffix(domain, "."+p.baseDomain) {
alias, err := p.alias.Query(domain)
if err != nil {
zap.L().Warn("未知域名", zap.String("base", p.baseDomain), zap.String("domain", domain))
zap.L().Warn("未知域名", zap.String("base", p.baseDomain), zap.String("domain", domain), zap.Error(err))
return nil, os.ErrNotExist
}
zap.L().Debug("命中别名", zap.String("domain", domain), zap.Any("alias", alias))
@@ -91,7 +91,7 @@ func (p *PageDomain) ParseDomainMeta(domain, path, branch string) (*PageDomainCo
func (p *PageDomain) ReturnMeta(owner string, repo string, branch string, path []string) (*PageDomainContent, error) {
rel := &PageDomainContent{}
if meta, err := p.GetMeta(owner, repo, branch); err == nil {
if meta, err := p.GetMeta(p.baseDomain, owner, repo, branch); err == nil {
rel.PageMetaContent = meta
rel.Owner = owner
rel.Repo = repo

View File

@@ -71,7 +71,7 @@ func NewServerMeta(client *http.Client, backend Backend, config utils.Config, tt
return &ServerMeta{backend, client, config, ttl, utils.NewLocker()}
}
func (s *ServerMeta) GetMeta(owner, repo, branch string) (*PageMetaContent, error) {
func (s *ServerMeta) GetMeta(baseDomain, owner, repo, branch string) (*PageMetaContent, error) {
rel := &PageMetaContent{
IsPage: false,
Renders: make(map[string]string),
@@ -136,7 +136,7 @@ func (s *ServerMeta) GetMeta(owner, repo, branch string) (*PageMetaContent, erro
}
if cname, err := s.ReadString(owner, repo, rel.CommitID, "CNAME"); err == nil {
cname = strings.TrimSpace(cname)
if regexpHostname.MatchString(cname) {
if regexpHostname.MatchString(cname) && !strings.HasSuffix(strings.ToLower(cname), strings.ToLower(baseDomain)) {
rel.Domain = cname
} else {
zap.L().Debug("指定的 CNAME 不合法", zap.String("cname", cname))