diff options
Diffstat (limited to 'application')
-rw-r--r-- | application/HttpUtils.php | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/application/HttpUtils.php b/application/HttpUtils.php index a81f9056..88a1efdb 100644 --- a/application/HttpUtils.php +++ b/application/HttpUtils.php | |||
@@ -311,7 +311,19 @@ function server_url($server) | |||
311 | } | 311 | } |
312 | } | 312 | } |
313 | 313 | ||
314 | return $scheme.'://'.$server['SERVER_NAME'].$port; | 314 | if (isset($server['HTTP_X_FORWARDED_HOST'])) { |
315 | // Keep forwarded host | ||
316 | if (strpos($server['HTTP_X_FORWARDED_HOST'], ',') !== false) { | ||
317 | $hosts = explode(',', $server['HTTP_X_FORWARDED_HOST']); | ||
318 | $host = trim($hosts[0]); | ||
319 | } else { | ||
320 | $host = $server['HTTP_X_FORWARDED_HOST']; | ||
321 | } | ||
322 | } else { | ||
323 | $host = $server['SERVER_NAME']; | ||
324 | } | ||
325 | |||
326 | return $scheme.'://'.$host.$port; | ||
315 | } | 327 | } |
316 | 328 | ||
317 | // SSL detection | 329 | // SSL detection |