summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--classes/Config.php2
-rw-r--r--tests/ConfigTest.php12
2 files changed, 13 insertions, 1 deletions
diff --git a/classes/Config.php b/classes/Config.php
index ab7f4baef..9235e2c45 100644
--- a/classes/Config.php
+++ b/classes/Config.php
@@ -483,7 +483,7 @@ class Config {
$self_url_path = $proto . '://' . $_SERVER["HTTP_HOST"] . parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
$self_url_path = preg_replace("/(\/api\/{1,})?(\w+\.php)?(\?.*$)?$/", "", $self_url_path);
- $self_url_path = preg_replace("/(\/plugins(.local))\/.{1,}$/", "", $self_url_path);
+ $self_url_path = preg_replace("/(\/plugins(.local)?)\/.{1,}$/", "", $self_url_path);
return rtrim($self_url_path, "/");
}
diff --git a/tests/ConfigTest.php b/tests/ConfigTest.php
index 8d706c5af..ee15df8d3 100644
--- a/tests/ConfigTest.php
+++ b/tests/ConfigTest.php
@@ -128,6 +128,18 @@ final class SelfUrlPathTest extends TestCase {
);
}
+ public function test_self_url_k(): void {
+ $_SERVER = [];
+
+ $_SERVER["HTTP_HOST"] = "example.com";
+ $_SERVER["REQUEST_URI"] = "/tt-rss/plugins/example/api/longpath/test.php/reader/api/0/stream/items/ids?n=1000&output=json&s=user/-/state/com.google/starred";
+
+ $this->assertEquals(
+ 'http://example.com/tt-rss',
+ Config::get_self_url(true)
+ );
+ }
+
public function test_get_self_dir(): void {
$this->assertEquals(
dirname(__DIR__), # we're in (app)/tests/