Skip to content

ext/standard: Do not double the slash when resolving relative redirects - #23532

Open
iliaal wants to merge 1 commit into
php:masterfrom
iliaal:fix-location-double-slash
Open

ext/standard: Do not double the slash when resolving relative redirects#23532
iliaal wants to merge 1 commit into
php:masterfrom
iliaal:fix-location-double-slash

Conversation

@iliaal

@iliaal iliaal commented Sep 1, 2026

Copy link
Copy Markdown
Member

Follow-up to GH-23521. resource->path always ends in a slash by the time the relative Location is appended (s[1] = '\0' truncates it after the last one), so the "%s/%s" format doubles the separator: Location: xy from http://host/a/b redirects to /a//xy instead of /a/xy. "%s%s" fixes that and makes the root-path special case redundant. Single-character locations keep resolving against the host root, as pinned on the stable branches.

resource->path always ends in a slash once the relative-Location code
truncates it after the last one (s[1] = '\0'), so the "%s/%s" format
built targets like /a//xy for "Location: xy" from /a/b. Use "%s%s" and
drop the root-path special case it makes redundant.
@Girgias

Girgias commented Sep 1, 2026

Copy link
Copy Markdown
Member

Is this the issue I fixed unintentionally in #22875 ? As if so might be better to just merge the refactoring.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants