Merge 9395c62314336e78849da7d3c25a7207be568899 into d9307dbcbbe796a64d9e0ef23452da888dd7f904

This commit is contained in:
Puneet Dixit 2026-06-23 11:58:59 +00:00 committed by GitHub
commit 7df3e75725
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 0 deletions

1
gin.go
View File

@ -811,6 +811,7 @@ func redirectFixedPath(c *Context, root *node, trailingSlash bool) bool {
if fixedPath, ok := root.findCaseInsensitivePath(cleanPath(rPath), trailingSlash); ok {
req.URL.Path = bytesconv.BytesToString(fixedPath)
req.URL.RawPath = ""
redirectRequest(c)
return true
}

View File

@ -273,6 +273,24 @@ func TestRouteRedirectFixedPath(t *testing.T) {
assert.Equal(t, http.StatusTemporaryRedirect, w.Code)
}
func TestRouteRedirectFixedPathWithRawPath(t *testing.T) {
router := New()
router.RedirectFixedPath = true
router.RedirectTrailingSlash = false
router.UseRawPath = true
router.UnescapePathValues = false
router.GET("/あ", func(c *Context) {})
w := PerformRequest(router, http.MethodGet, "/%e3%81%82")
assert.Equal(t, "/%E3%81%82", w.Header().Get("Location"))
assert.Equal(t, http.StatusMovedPermanently, w.Code)
w = PerformRequest(router, http.MethodGet, "/%E3%81%82")
assert.Empty(t, w.Header().Get("Location"))
assert.Equal(t, http.StatusOK, w.Code)
}
// TestContextParamsGet tests that a parameter can be parsed from the URL.
func TestRouteParamsByName(t *testing.T) {
name := ""