Repository navigation
Conversation
The HTTP->HTTPS redirect written by the http_redirect listener wrapper
was always a 308. Allow configuring it to 301, 302, 303, 307 or 308,
defaulting to 308, and add Caddyfile support:
http_redirect {
status_code 307
}
Closes caddyserver#6499
steadytao
approved these changes
Sep 26, 2026
steadytao
left a comment
Member
There was a problem hiding this comment.
Looks decent. CLA needs to be signed.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #6499
The
http_redirectlistener wrapper always answered plaintext HTTP requests on the HTTPS port with a 308. This adds astatus_codeoption so the redirect can be made non-permanent (e.g. 307) or use another redirect code."status_code": 307(default remains 308); validated to be one of 301, 302, 303, 307, 308.Tests: unit tests that send a plaintext request through the wrapped listener and check the written status line and Location for each code, validation and Caddyfile parsing tables, and a caddyfile_adapt test.
Assistance Disclosure
I used AI assistants (Claude, OpenAI models) while writing and reviewing this change; I verified the behaviour and tests myself.