diff --git a/core/corehttp/ipns_hostname.go b/core/corehttp/ipns_hostname.go index f651cc60f12..6f31e526884 100644 --- a/core/corehttp/ipns_hostname.go +++ b/core/corehttp/ipns_hostname.go @@ -2,9 +2,9 @@ package corehttp import ( "net/http" - "path" "strings" + isd "github.com/ipfs/go-ipfs/Godeps/_workspace/src/github.com/jbenet/go-is-domain" "github.com/ipfs/go-ipfs/Godeps/_workspace/src/golang.org/x/net/context" "github.com/ipfs/go-ipfs/core" ) @@ -20,8 +20,11 @@ func IPNSHostnameOption() ServeOption { defer cancel() host := strings.SplitN(r.Host, ":", 2)[0] - if p, err := n.Namesys.Resolve(ctx, host); err == nil { - r.URL.Path = path.Join(p.String(), r.URL.Path) + if len(host) > 0 && isd.IsDomain(host) { + name := "/ipns/" + host + if _, err := n.Namesys.Resolve(ctx, name); err == nil { + r.URL.Path = name + r.URL.Path + } } childMux.ServeHTTP(w, r) })