From 9826d2f07527e3259957628030adc87bde391b0c Mon Sep 17 00:00:00 2001 From: Andrew Dolgov Date: Mon, 23 Oct 2023 23:10:17 +0300 Subject: [PATCH] add a self url path hack to strip request path directories (needed for /api/index.php) --- api/index.php | 2 ++ classes/config.php | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/api/index.php b/api/index.php index 750a95721..329e03dae 100644 --- a/api/index.php +++ b/api/index.php @@ -14,6 +14,8 @@ require_once "functions.php"; require_once "sessions.php"; + Config::strip_self_url_path_dirs(1); + ini_set('session.use_cookies', "0"); ini_set("session.gc_maxlifetime", "86400"); diff --git a/classes/config.php b/classes/config.php index 17c555fa9..77795de7a 100644 --- a/classes/config.php +++ b/classes/config.php @@ -268,6 +268,8 @@ class Config { /** @var Db_Migrations|null $migrations */ private $migrations; + private static $self_url_path_strip_dirs = 0; + public static function get_instance() : Config { if (self::$instance == null) self::$instance = new self(); @@ -476,6 +478,10 @@ class Config { (!empty($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https'); } + static function strip_self_url_path_dirs($amount) { + self::$self_url_path_strip_dirs = $amount; + } + /** returns fully-qualified external URL to tt-rss (no trailing slash) * SELF_URL_PATH configuration variable is used as a fallback for the CLI SAPI * */ @@ -488,6 +494,9 @@ class Config { $self_url_path = $proto . '://' . $_SERVER["HTTP_HOST"] . parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH); $self_url_path = preg_replace("/\w+\.php(\?.*$)?$/", "", $self_url_path); + for ($i = 0; $i < self::$self_url_path_strip_dirs; $i++) + $self_url_path = dirname($self_url_path); + if (substr($self_url_path, -1) === "/") { return substr($self_url_path, 0, -1); } else {