-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Open
Labels
bug πSomething isn't workingSomething isn't working
Description
Issue Details
Hi,
I want to normalize ID query field to be lowercase - id. I use the syntax uri query ID>id.
The thing is, when I go to https://test.dev/?page=test&ID=5&test=100 (ID is uppercase), everything is fine. In the logs of the upstream server, see GET /?id=5&page=test&test=100
When I go https://test.dev/?page=test&id=5&test=100 (id is lowercase), the upstream server does not have the id parameter at all, GET /?page=test&test=100. Caddy removed id parameter!
This is unexpected behavior. Field id (lowercase) must not be touched.
How to reproduce:
docker-compose.yml
services:
caddy:
image: caddy:2.11.2-alpine
ports:
- "8443:443"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
node1:
image: nginx:1.28.3-alpine3.23-perl
Caddyfile
https://test.dev {
tls internal
uri query ID>id
reverse_proxy http://node1:80
}
As expected:
# curl -k -v --connect-to test.dev:443:127.0.0.1:8443 'https://test.dev/?page=test&ID=5&test=100'
node1-1 | 172.21.0.2 - - [26/Mar/2026:16:47:33 +0000] "GET /?id=5&page=test&test=100 HTTP/1.1" 200 615 "-" "curl/8.11.1" "172.21.0.1"
Unexpected, query field id gone
# curl -k -v --connect-to test.dev:443:127.0.0.1:8443 'https://test.dev/?page=test&id=5&test=100'
node1-1 | 172.21.0.2 - - [26/Mar/2026:16:56:26 +0000] "GET /?page=test&test=100 HTTP/1.1" 200 615 "-" "curl/8.11.1" "172.21.0.1"
Assistance Disclosure
AI not used
If AI was used, describe the extent to which it was used.
No response
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
bug πSomething isn't workingSomething isn't working