Wie in diesem Thread beschrieben, gibt es probleme, wenn mod_rewrite aktiviert ist, und die Seite per SSL verschlüsselt werden soll.
Aufgrund des base href tag zeigen entweder alle links auf die unverschlüsselte Seite, oder nicht verschlüsselter content (bilder, css)
wird geladen.

Ich habe mir gedacht, wenn schon mit beschäftigen, warum nicht gleich nen ganzen Hack für Sefrengo draus machen?
So war meine Überlegung:
Im backend wird bei "Basepath bei UrlRewrite=2" die adresse ohne "http://" eingegeben (könnte man evtl. auch mit substr() filter),
dafür dann in der Codeausgabe variabel hinzugefügt.

Wenn also $_SERVER['HTTPS'] == "1" oder "on" ist, wird https:// eingesetzt,
falls $_SERVER['HTTPS'] == "0" oder "off" ist, wird http:// eingesetzt.

Damit entscheidet der Benutzer, ob es eine Seite verschlüsselt haben will.
Also habe ich in der inc.generate_code.php Zeile 118:

CODE
$code .= '<CMSPHP> if ($cfg_client[\'url_rewrite\'] == \'2\') echo \'<base href="\'.htmlspecialchars(str_replace(\'{%http_host}\', $_SERVER[\'HTTP_HOST\'], $cfg_client[\'url_rewrite_basepath\']), ENT_COMPAT, \'utf-8\').\'"'.$sf_slash_closing_tag.'>\'."\n"; </CMSPHP>';


ersetzt durch:

CODE
$code .= '<CMSPHP> if ($cfg_client[\'url_rewrite\'] == \'2\') { if(isset($_SERVER[\'HTTPS\']) && ($_SERVER[\'HTTPS\'] == \'1\' || strtolower($_SERVER[\'HTTPS\'])==\'on\')) { echo \'<base href="https://\'.htmlspecialchars(str_replace(\'{%http_host}\', $_SERVER[\'HTTP_HOST\'], $cfg_client[\'url_rewrite_basepath\']), ENT_COMPAT, \'utf-8\').\'"'.$sf_slash_closing_tag.'>\'."\n"; }else{ echo \'<base href="http://\'.htmlspecialchars(str_replace(\'{%http_host}\', $_SERVER[\'HTTP_HOST\'], $cfg_client[\'url_rewrite_basepath\']), ENT_COMPAT, \'utf-8\').\'"'.$sf_slash_closing_tag.'>\'."\n"; } } </CMSPHP>';



Ein erster, lokaler, nicht produktiver Test schien zu funktionieren, als ich https://domain.tld eingab, war der base href tag auch https://,
und nur http:// war der base href tag auch http://


So kann ich vorschreiben, welche Seiten verschlüsselt werden sollen;
und wenn der Benutzer variabel anstatt "http" https:// eingibt, wird er durch den base href tag nicht wieder auf
die unverschlüsselte seite weitergeleitet.

Könnt ihr das mal testen? Funktioniert der Hack bei euch?
Habe ich irgend einen generellen Denk - Fehler gemacht?
Wird der basepath noch irgendwo anders benötigt, wo das einen Fehler verursachen würde?
Bisschen Feedback wäre nett...