diff --git a/app/constants.php b/app/constants.php index 4a32c07..50dda97 100644 --- a/app/constants.php +++ b/app/constants.php @@ -24,6 +24,7 @@ defined('DB_PASSWORD') or define('DB_PASSWORD', ''); defined('DEBUG_MODE') or define('DEBUG_MODE', false); defined('DEBUG_FILENAME') or define('DEBUG_FILENAME', DATA_DIRECTORY.DIRECTORY_SEPARATOR.'debug.log'); +defined('BASE_URL') or define('BASE_URL', ''); defined('THEME_DIRECTORY') or define('THEME_DIRECTORY', 'themes'); defined('THEME_URL_PATH') or define('THEME_URL_PATH', 'themes'); defined('SESSION_SAVE_PATH') or define('SESSION_SAVE_PATH', ''); diff --git a/app/helpers/app.php b/app/helpers/app.php index 0b09bcf..bb10d54 100644 --- a/app/helpers/app.php +++ b/app/helpers/app.php @@ -44,16 +44,20 @@ function parse_app_version($refnames, $commithash) function get_current_base_url() { - $url = is_secure_connection() ? 'https://' : 'http://'; - $url .= $_SERVER['HTTP_HOST']; + if(BASE_URL) { + $url = BASE_URL; + return rtrim($url, '/') . '/'; + } else { + $url = is_secure_connection() ? 'https://' : 'http://'; + $url .= $_SERVER['HTTP_HOST']; - if (strpos($_SERVER['HTTP_HOST'], ':') === false) { - $url .= $_SERVER['SERVER_PORT'] == 80 || $_SERVER['SERVER_PORT'] == 443 ? '' : ':'.$_SERVER['SERVER_PORT']; + if (strpos($_SERVER['HTTP_HOST'], ':') === false) { + $url .= $_SERVER['SERVER_PORT'] == 80 || $_SERVER['SERVER_PORT'] == 443 ? '' : ':'.$_SERVER['SERVER_PORT']; + } + $url .= str_replace('\\', '/', dirname($_SERVER['PHP_SELF'])) !== '/' ? str_replace('\\', '/', dirname($_SERVER['PHP_SELF'])).'/' : '/'; + + return $url; } - - $url .= str_replace('\\', '/', dirname($_SERVER['PHP_SELF'])) !== '/' ? str_replace('\\', '/', dirname($_SERVER['PHP_SELF'])).'/' : '/'; - - return $url; } function is_secure_connection() diff --git a/config.default.php b/config.default.php index 10d25ff..06f1fdb 100644 --- a/config.default.php +++ b/config.default.php @@ -6,6 +6,9 @@ define('HTTP_TIMEOUT', '20'); // HTTP_MAX_RESPONSE_SIZE => Maximum accepted size of the response body in MB (default 2MB) define('HTTP_MAX_RESPONSE_SIZE', 2097152); +// BASE_URL => URL that clients should access this instance of miniflux from +define('BASE_URL', ''); + // DATA_DIRECTORY => default is data (writable directory) define('DATA_DIRECTORY', 'data');