diff --git a/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php b/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php index 42688d9c560eb68b232c87f8a68d91a5fe3bf302..b2e17a43b9d78a59a098a5905cd9b816b0a94409 100644 --- a/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php +++ b/typo3/sysext/viewpage/Classes/Controller/ViewModuleController.php @@ -68,15 +68,19 @@ class ViewModuleController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionContr // Modify relative path to protocol with host if domain record is given $protocolAndHost = '..'; if ($domainName) { - $protocol = 'http'; - $page = (array)$sysPage->getPage($finalPageIdToShow); - if ($page['url_scheme'] == 2 || $page['url_scheme'] == 0 && \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SSL')) { - $protocol = 'https'; + // TCEMAIN.previewDomain can contain the protocol, check prevents double protocol URLs + if (strpos($domainName, '://') !== FALSE) { + $protocolAndHost = $domainName; + } else { + $protocol = 'http'; + $page = (array)$sysPage->getPage($finalPageIdToShow); + if ($page['url_scheme'] == 2 || $page['url_scheme'] == 0 && \TYPO3\CMS\Core\Utility\GeneralUtility::getIndpEnv('TYPO3_SSL')) { + $protocol = 'https'; + } + $protocolAndHost = $protocol . '://' . $domainName; } - $protocolAndHost = $protocol . '://' . $domainName; } - $url = $protocolAndHost . '/index.php?id=' . $finalPageIdToShow . $this->getTypeParameterIfSet($finalPageIdToShow) . $mountPointMpParameter . $adminCommand; - return $url; + return $protocolAndHost . '/index.php?id=' . $finalPageIdToShow . $this->getTypeParameterIfSet($finalPageIdToShow) . $mountPointMpParameter . $adminCommand; } /**