Hi,
I'd like to utilize my webhoster's "ssl-proxy" in order to access the admin-pages of Silverstripe, but
e.g. instead of
redirecting from
https://ssl-mySSLproxy.com/mysite.com/admin
to
https://ssl-mySSLproxy.com/mysite.com/Security/Login
Silverstripe redirects to
https://ssl-mySSLproxy.com/Security/Login
which gives an error, of course;
Director::set_environment_type('live')
is set in _config.php
I had a try on Director::protocolAndHost(), because I've found that I may use $_SERVER['HTTP_X_FORWARDED_HOST'], but that just ensures that Silverstripe gets the URLs for CSS/JS right, the redirecting still fails ( without this patch SS sometimes would try to load .css-files from the SSL-Proxy ...).
Any hints welcome ...
--- Director_orig.php 2009-07-21 12:02:55.000000000 +0200
+++ Director.php 2009-07-21 12:15:11.000000000 +0200
@@ -338,8 +338,10 @@
$s = (isset($_SERVER['SSL']) || (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off')) ? 's' : '';
- if(isset($_SERVER['HTTP_HOST'])) {
+ if((isset($_SERVER['HTTP_HOST'])) && (!isset($_SERVER['HTTP_X_FORWARDED_HOST']))) {
return "http$s://" . $_SERVER['HTTP_HOST'];
+ } else if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
+ return "https://" . $_SERVER['HTTP_X_FORWARDED_HOST'] . '/' . $_SERVER['HTTP_HOST'];
} else {
global $_FILE_TO_URL_MAPPING;
if(Director::is_cli() && isset($_FILE_TO_URL_MAPPING)) $errorSuggestion = ' You probably want to define '.