Troubleshoot QCDR Page Targeting, Scheduling, IP, Conditions, and Caching

Advanced QCDR targeting is cumulative: every configured gate must qualify before a Rule or Token can apply. Troubleshoot from broad request scope toward the narrowest condition, then eliminate caching before changing a working target definition.

Use Rule Health Instead of Guessing

For a saved Rule, private Preview / Rule Health can report page/menu scope, component/module region, audience, schedule/timezone, IP Include/Exclude, technical conditions, Token readiness, match results, and protected-area skips. A failed targeting gate prevents later replacement work even if the Find text exists.

Check Page, Menu, and URL Scope

Confirm the request is on the intended Joomla menu item or matches the configured URL/path patterns. QCDR wildcard matching supports * and ?. Include scope requires a configured target to match; Exclude scope rejects a matching target.

If component/module targeting is enabled, make sure the desired text occurs inside the selected rendered component or module boundary—not merely somewhere else on the page.

Check Audience and Schedule

Audience can distinguish everyone, guests, logged-in visitors, or selected Joomla groups. Scheduling can add UTC start/end boundaries, a selected timezone, daily/weekly/monthly recurrence, daily windows, and blackout dates.

Start is inclusive and End is exclusive. Overnight daily windows cross midnight correctly. A non-empty Custom recurrence rule is currently reserved/unsupported and therefore should not be used as a production recurrence language.

Check IP Targeting and Trusted Proxies

IP rules support exact IPv4/IPv6 addresses, CIDR networks, and same-family ranges. If the site is behind a proxy/CDN, QCDR trusts X-Forwarded-For only when the direct REMOTE_ADDR first matches a configured trusted proxy IP/CIDR.

An incorrect trusted-proxy configuration can make every visitor appear to come from the proxy address or can cause an IP allow list to miss unexpectedly.

Check Technical Conditions

Current conditions can compare URL, menu ID, component, view, language, template, hostname, request method, Joomla user group, and query data. Operators include equals/not equals, contains/not contains, starts/ends with, wildcard matches, in, and not in.

All requires every condition to pass; Any requires at least one.

Eliminate Shared Cache Variants

Normal QCDR live responses do not automatically set private/no-store headers. Purge or bypass Joomla page caching, reverse proxies, and CDN caches while diagnosing. If output varies by user, group, IP, query, or time, configure the cache so one visitor's generated variant cannot be reused for another context.


Community Discussion

Want to compare workflows, share practical tips, or discuss how you use this QCDR feature? Visit the QC Dynamic Replacer Community. For private support, bug reports, account-specific issues, or feature requests, use the QuantaCade support system.