Skip to content
Snippets Groups Projects
Commit 5d370c7e authored by Laurent Destailleur's avatar Laurent Destailleur
Browse files

Fix: force redirect to https could not work for some environments

parent 0128cc36
Branches solution
No related tags found
No related merge requests found
...@@ -198,10 +198,13 @@ $dolibarr_main_authentication='dolibarr'; ...@@ -198,10 +198,13 @@ $dolibarr_main_authentication='dolibarr';
// dolibarr_main_force_https // dolibarr_main_force_https
// This parameter allows to force the HTTPS mode. // This parameter allows to force the HTTPS mode.
// 0 = No forced redirect
// 1 = Force redirect to https until SCRIPT_URI start with https
// 2 = Force redirect to https until SERVER["HTTPS"] is 'on'
// Warning: If you enable this parameter, your web server must be configured // Warning: If you enable this parameter, your web server must be configured
// to respond URL with https protocol. // to respond URL with https protocol.
// Default value: 0 // Default value: 0
// Possible values: 0 or 1 // Possible values: 0, 1 or 2
// Examples: // Examples:
// $dolibarr_main_force_https='0'; // $dolibarr_main_force_https='0';
// //
......
...@@ -196,9 +196,9 @@ if (isset($_SERVER["HTTP_USER_AGENT"])) ...@@ -196,9 +196,9 @@ if (isset($_SERVER["HTTP_USER_AGENT"]))
if (! empty($conf->file->main_force_https)) if (! empty($conf->file->main_force_https))
{ {
$newurl=''; $newurl='';
if ($conf->file->main_force_https == '1') if (is_numeric($conf->file->main_force_https))
{ {
if (! empty($_SERVER["SCRIPT_URI"])) // If SCRIPT_URI supported by server if ($conf->file->main_force_https == '1' && ! empty($_SERVER["SCRIPT_URI"])) // If SCRIPT_URI supported by server
{ {
if (preg_match('/^http:/i',$_SERVER["SCRIPT_URI"]) && ! preg_match('/^https:/i',$_SERVER["SCRIPT_URI"])) // If link is http if (preg_match('/^http:/i',$_SERVER["SCRIPT_URI"]) && ! preg_match('/^https:/i',$_SERVER["SCRIPT_URI"])) // If link is http
{ {
...@@ -215,9 +215,14 @@ if (! empty($conf->file->main_force_https)) ...@@ -215,9 +215,14 @@ if (! empty($conf->file->main_force_https))
} }
} }
else else
{
// Check HTTPS environment variable (Apache/mod_ssl only)
// $_SERVER["HTTPS"] is 'on' when link is https, otherwise $_SERVER["HTTPS"] is empty or 'off'
if (empty($_SERVER["HTTPS"]) || $_SERVER["HTTPS"] != 'on') // If link is http
{ {
$newurl=$conf->file->main_force_https.$_SERVER["REQUEST_URI"]; $newurl=$conf->file->main_force_https.$_SERVER["REQUEST_URI"];
} }
}
// Start redirect // Start redirect
if ($newurl) if ($newurl)
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment