Opened 9 years ago
Last modified 5 years ago
#33821 new defect (bug)
redirect_canonical does not consider port in $compare_original
Reported by: | willshouse | Owned by: | |
---|---|---|---|
Milestone: | Future Release | Priority: | normal |
Severity: | normal | Version: | 2.3 |
Component: | Canonical | Keywords: | has-patch needs-unit-tests needs-testing |
Focuses: | Cc: |
Description (last modified by )
In the wp-includes/canonical.php
file the $requested_url
is built starting at line 64. It combines is_ssl()
for protocol, $_SERVER['HTTP_HOST']
, and $_SERVER['REQUEST_URI']
- but it does not consider $_SERVER['SERVER_PORT']
This causes a redirect loop for us because we run HTTPS on port 8443.
I suggest checking to see if a port other than 80 or 443 is being used and adding that as part of the comparison - suggested patch attached.
Attachments (1)
Change History (10)
#1
@
9 years ago
- Component changed from General to Canonical
- Description modified (diff)
- Keywords has-patch needs-unit-tests added
- Milestone changed from Awaiting Review to Future Release
- Version changed from 4.3 to 2.3
Thanks for the patch, willshouse.
This will need some unit tests.
#3
@
9 years ago
As previously mentioned in #34672 I find the following issue :
I am able to open wp-admin and everything works well.
When I open my home page, I get a redirect loop.
On further investigation, it seems redirect_canonical() in wp-includes/canonical.php is the culprit. It finds the :
$redirect_url
as 'http://localhost:80/ajk/' and$requested_url
as 'http://localhost/ajk/'
And the extra :80
causes the condition $redirect_url == $requested_url
to be false - causing the infinite redirect.
I tried the above patch for this issue, and it didn't seem to solve this issue.
add canonical port check