Issue #3605736: Preserve target site when following chained redirects

Cross-site redirect chains lost their site context: findByRedirect() inherited from RedirectRepository re-resolved the next hop with the current site instead of the redirect's target site, so a chain whose intermediate hop points at another site stopped one step early.

Override findByRedirect() to pass the redirect's target site_id into findMatchingRedirect(). Inject request_stack and redirect.prefix_list into the repository (also clears the redirect 1.11/1.12 constructor deprecation).

Adds a Kernel test reproducing an A->B->C chain that crosses sites.

Closes #3605736

Merge request reports

Loading