Bug #89578

Redirect migration wizard creates wrong redirects

Added by Matthias Krappitz over 2 years ago. Updated 5 months ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
Install Tool
Start date:
2019-11-04
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
9
PHP Version:
7.2
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

When updating from TYPO3 8 to 9 and when having domain records with redirects for example for redirecting a subdomain without www to the one with www, the update migration wizard 'Install system extension "redirects" if a sys_domain entry with redirectTo is necessary' creates wrong redirects.

For example if you had a domain record in 8 for domain "test.com" having the redirect target "https://www.test.com/", the migration wizard creates a redirect with an empty source domain and the source path "/test.com/", which is not correct. It should have been source domain "test.com" and source path "/". When correcting this manually after the upgrade wizard, it works fine.


Related issues

Related to TYPO3 Core - Bug #91780: RedirectsExtensionUpdate Upgrade Wizard parse_url is buggyResolved2020-07-10

Actions
#1

Updated by Matthias Krappitz over 2 years ago

  • Description updated (diff)
#2

Updated by Christian Eßl about 2 years ago

  • Category set to Install Tool
#3

Updated by Tobias Schmidt about 2 years ago

This problem still exists in TYPO3 10.4.1. I would consider this a problem with priority Must have. Core migration wizards should be reliable to run as far as possible.

#4

Updated by Stefan Berger almost 2 years ago

I could confirm the issue.

The $sourceDetails is generated with parse_url. If the domain is like test.com, it will be extracted as path.

This fix our situation:

diff -r a/typo3/sysext/install/Classes/Updates/RedirectsExtensionUpdate.php b/typo3/sysext/install/Classes/Updates/RedirectsExtensionUpdate.php
172a173,174
>             $sourceDetails['host'] = $domainName;
>             $sourceDetails['path'] = str_replace($domainName, '', $sourceDetails['path']);

#5

Updated by Tobias Schmidt almost 2 years ago

To fix this bug change $sourceDetails = parse_url($domainName); to $sourceDetails = parse_url('//' . $domainName); in sysext/install/Classes/Updates/RedirectsExtensionUpdate.php. As the domain name of a domain record must not start with a scheme and/or double slashes the domain name must be prefixed with double slashes in the parse_url call to recognize the domain name as host and not as path. See Example #2 A parse_url() example with missing scheme in PHP documentation.

#6

Updated by Josef Glatz over 1 year ago

  • Related to Bug #91780: RedirectsExtensionUpdate Upgrade Wizard parse_url is buggy added
#7

Updated by Tobias Schmidt 7 months ago

Can be closed. Bug is fixed with #91780.

#8

Updated by Riccardo De Contardi 5 months ago

  • Status changed from New to Closed

I close this issue for now.

If you think that this is the wrong decision or experience the issue again, please reopen it or ping me.

Thanks

Also available in: Atom PDF