Fix wrong redirect on custom domain with path (#154) All checks were successful ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
closes #153 Co-authored-by: crapStone <crapstone01@gmail.com> Co-authored-by: 6543 <6543@obermui.de> Reviewed-on: #154 Reviewed-by: 6543 <6543@obermui.de> Co-authored-by: crapStone <crapstone@noreply.codeberg.org> Co-committed-by: crapStone <crapstone@noreply.codeberg.org>
This commit is contained in:
parent c286b3b1d0
commit bd538abd37
2 changed files with 19 additions and 1 deletions
| @ -78,6 +78,24 @@ func TestCustomDomain(t *testing.T) { | |||
assert.EqualValues(t, 106, getSize(resp.Body)) | ||||
} | ||||
| ||||
func TestCustomDomainRedirects(t *testing.T) { | ||||
log.Println("=== TestCustomDomainRedirects ===") | ||||
// test redirect from default pages domain to custom domain | ||||
resp, err := getTestHTTPSClient().Get("https://6543.localhost.mock.directory:4430/test_pages-server_custom-mock-domain/@main/README.md") | ||||
assert.NoError(t, err) | ||||
if !assert.NotNil(t, resp) { | ||||
t.FailNow() | ||||
} | ||||
assert.EqualValues(t, http.StatusTemporaryRedirect, resp.StatusCode) | ||||
assert.EqualValues(t, "text/html; charset=utf-8", resp.Header.Get("Content-Type")) | ||||
// TODO: custom port is not evaluated (witch does hurt tests & dev env only) | ||||
assert.EqualValues(t, "https://mock-pages.codeberg-test.org/@main/README.md", resp.Header.Get("Location")) | ||||
assert.EqualValues(t, `https:/codeberg.org/6543/test_pages-server_custom-mock-domain/src/branch/main/README.md; rel="canonical"; rel="canonical"`, resp.Header.Get("Link")) | ||||
| ||||
// TODO: test redirect from an custom domain to the primary custom domain (www.example.com -> example.com) | ||||
// (cover bug https://codeberg.org/Codeberg/pages-server/issues/153) | ||||
} | ||||
| ||||
func TestGetNotFound(t *testing.T) { | ||||
log.Println("=== TestGetNotFound ===") | ||||
// test custom not found pages | ||||
| |
| @ -54,7 +54,7 @@ func handleCustomDomain(log zerolog.Logger, ctx *context.Context, giteaClient *g | |||
// only redirect if the target is also a codeberg page! | ||||
targetOwner, _, _ = dns.GetTargetFromDNS(strings.SplitN(canonicalDomain, "/", 2)[0], mainDomainSuffix, dnsLookupCache) | ||||
if targetOwner != "" { | ||||
ctx.Redirect("https://"+canonicalDomain+targetOpt.TargetPath, http.StatusTemporaryRedirect) | ||||
ctx.Redirect("https://"+canonicalDomain+"/"+targetOpt.TargetPath, http.StatusTemporaryRedirect) | ||||
return | ||||
} | ||||
| ||||
| |
Loading…
Add table
Add a link
Reference in a new issue