How to diagnose redirect chains without losing the query string
Follow a worked HTTP-to-HTTPS chain, distinguish temporary and permanent redirects, and check paths, campaign parameters, and loops.
Capture the exact URL and every hop
Start with the URL a visitor or external link actually uses. Include its scheme, hostname, path, and a harmless test query. Redirect Checker reports the response status and Location destination for each HTTP hop. Use the final status as well as the final URL: a chain that ends on a 404 is still broken.
The hypothetical chain below performs HTTPS normalization, hostname normalization, and a path change separately. All three destinations keep the source parameter. A combined rule may send the old address directly to the final page, provided it preserves the mapping you intend.
| Requested URL | Status | Location |
|---|---|---|
| http://www.example.com/old?utm_source=newsletter | 301 | https://www.example.com/old?utm_source=newsletter |
| https://www.example.com/old?utm_source=newsletter | 308 | https://example.com/old?utm_source=newsletter |
| https://example.com/old?utm_source=newsletter | 301 | https://example.com/new?utm_source=newsletter |
| https://example.com/new?utm_source=newsletter | 200 | No further HTTP redirect |
Choose a status that matches the change
301 and 308 indicate permanent moves; 302 and 307 indicate temporary redirects. 307 and 308 preserve the request method and body. 303 directs the client to retrieve another resource and is often used after a form submission. Method handling matters when an endpoint receives more than ordinary GET requests.
ADEMN’s checker makes public GET requests. It can display the response codes, but it cannot prove how a POST body behaves or test a signed-in flow. Verify those cases in the application’s own environment before changing a rule that handles forms or API requests.
Test paths and query parameters explicitly
Check a representative old path, a path with several segments, and a URL containing a harmless campaign parameter. If Location omits the query string, the next request may lose that attribution. Avoid a rule that sends every retired page to the homepage when a relevant replacement exists.
A fragment such as #details is handled by the browser and is not sent in an HTTP request. An HTTP trace alone therefore does not establish whether the page has the intended anchor or whether the browser scrolls to it. Open the final page and check that behavior separately.
Interpret loops and incomplete chains
A loop occurs when rules lead back to a URL already visited, such as two hostname rules that point at each other. Inspect each Location value and the layers setting it: application, server, and CDN rules can interact. Disable or correct the conflicting rule in the appropriate configuration, then check the original entry URL again.
ADEMN follows up to six HTTP requests and stops on a detected loop, an unsafe destination, a request failure, or the limit. A stopped chain is incomplete evidence, not a successful final destination. The checker does not execute JavaScript or follow a page’s meta refresh, so use a browser to investigate navigation that appears only after the HTML loads.
Recheck after deployment
Test HTTP and HTTPS entry URLs, the apex and www hosts, and your chosen path and query cases. Confirm the final response and the content served. Use the site’s public URL rather than a private preview when validating the actual production routing.
Keep a small list of representative URLs so future changes can be checked against the same expectations. A correct canonical link in the final HTML is helpful metadata, but it does not repair a broken redirect or restore a removed query parameter.