Apache APISIX HTTPS Redirect Not Working
You encounter a apisix configuration issue that prevents your workflow from completing. This guide walks through the fix step by step.
Wrong ❌
{
"plugins": {
"key-auth": {},
"keycloak-auth": {},
"redirect": { "http_to_https": true }
},
"uri": "/*"
}
Wrong Output
Requests to HTTP are processed by auth plugins before the redirect. Auth returns 401 before the 301 redirect.
Right ✅
{
"plugins": {
"redirect": { "http_to_https": true }
},
"uri": "/*"
}
# Redirect route should be separate from the API route
Right Output
HTTP requests receive 301 redirect to HTTPS. Browsers redirect automatically. No auth processing on HTTP.
Prevention
- Place redirect plugin first in plugin order or on a separate route.
- Do not combine redirect with auth plugins on the same route.
- Use a separate redirect route with higher priority.
- Test with HTTP curl -L to follow redirects.
- Use 301 for permanent redirects, 302 for temporary.
DodaTech applies similar defensive patterns across Doda Browser, DodaZIP, and Durga Antivirus Pro infrastructure for production reliability.
Common Mistakes with redirect https
- Forgetting
deriving (Show, Eq)on custom data types needed for debugging - Placing the wildcard pattern first in case expressions, making all subsequent patterns unreachable
- Using
headandtailinstead of pattern matching, causing runtime errors on empty lists
These mistakes appear frequently in real-world APISIX code. DodaTech's contributors have identified these patterns through analysis of open-source projects and production systems.
Practice Exercise
Write a pure function that safely divides two integers using Maybe, then test it with edge cases like division by zero and negative numbers.
This exercise reinforces the concepts covered in this guide. Try implementing it before checking online solutions.
FAQ
This quick fix is part of the DodaTech infrastructure engineering series. Learn more at DodaTech tutorials.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro