Hallo zusammen,
wir hosten SoSci mit der Hochschullizenz selbst und haben beim Einsatz eines ProxyPath ein Redirect Problem…
Der Server ist nur intern erreichbar und sollte mittels ProxyPath auch von außen erreichbar sein. Dazu habe ich in der Konfiguration folgendes eingetragen:
Doch wenn ich die Seite https://extern.mh-hannover.de/soscisurvey/ aufrufe wird sofort auf http://intern.mh-hannover.local/soscisurvey/admin/ umgeleitet und ich kann diese Seite von extern nicht erreichen. Und zwar nur bei der Anmeldeseite, wenn ich https://extern.mh-hannover.de/soscisurvey/<Fragebogenname> aufrufe, erfolgt kein redirect und der Fragebogen ist von extern erreichbar. Wie kann man dieses Redirect verhindern?
Wir haben die (vermeintliche) Stelle ausfindig gemacht, in der das Redirect stattfindet und zwar in der/admin/index.php unter private static function htmlLicenceInfo()
private static function htmlLicenceInfo() {
if ($GLOBALS['oFb']['licence info'] === false) {
return SystemLib::advice('Licence', 'licence.not retrieved');
}
// Redirect to server URL if different
$urlInfo = parse_url($GLOBALS['oFb']['licence info']['url']);
$lcRoot = str_replace(' ', '%20', (isset($urlInfo['path']) ? $urlInfo['path'] : ''));
$crRoot = str_replace(' ', '%20', $_SERVER['REQUEST_URI']);
$crRoot = substr($crRoot, 0, strlen($lcRoot));
$lcHost = strtolower($urlInfo['host']);
//$lcHost = 'extern.mh-hannover.de';
$crHost = strtolower($_SERVER['SERVER_NAME']);
$stay = GeneralFramework::readExt('stay', true);
if ((($lcRoot !== $crRoot) or ($lcHost !== $crHost)) and ($stay === false)) {
$redirect = $GLOBALS['oFb']['licence info']['url'].'/admin/?stay';
header('Location: '.$redirect);
exit;
}
// Show licence information
if (!isset($GLOBALS['oFb']['licence info']['lic'])) {
return SystemLib::advice('Licence', 'licence.invalid');
} elseif ($GLOBALS['oFb']['licence info']['lic'] === 'free') {
return SystemLib::advice('Licence', 'licence.free', array('organization' => nl2br($GLOBALS['oFb']['licence info']['org'])));
} elseif (
($GLOBALS['oFb']['licence info']['lic'] === 'year') or
($GLOBALS['oFb']['licence info']['lic'] === 'quad') or
($GLOBALS['oFb']['licence info']['lic'] === 'lifetime') or
($GLOBALS['oFb']['licence info']['lic'] === 'reduced') or
($GLOBALS['oFb']['licence info']['lic'] === 'test')
) {
// Fine, nothing to show
} else {
return SystemLib::advice('Licence', 'licence.invalid');
}
}
Wenn die Variable $lcHost direkt mit der neuen URL gesetzt wird funktioniert es…
Hat da vielleicht jemand eine Idee?
Viele Grüße,
N.Schönfeld