summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2023-10-23 23:10:17 +0300
committerAndrew Dolgov <[email protected]>2023-10-23 23:10:17 +0300
commit9826d2f07527e3259957628030adc87bde391b0c (patch)
tree355fc07645a15cdf5056724be108363961ce36bc
parente956632c5ca8f87fbfe8cb365a503af53673e91e (diff)
add a self url path hack to strip request path directories (needed for /api/index.php)
-rw-r--r--api/index.php2
-rw-r--r--classes/config.php9
2 files changed, 11 insertions, 0 deletions
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 {