From 863a8ddfffd7e56ed8cb34220d8342b1cff53c43 Mon Sep 17 00:00:00 2001 From: Alexander Skvortsov <38059171+askvortsov1@users.noreply.github.com> Date: Sat, 23 Apr 2022 10:23:03 -0400 Subject: [PATCH] fix: don't duplicate path in URL to post on subdirectory installs. (#3354) `baseUrl` includes the path portion of the url, as does `basePath`, which is included in `app.route.x` function outputs. The `baseOrigin` (with no path component at all) should be used instead. --- framework/core/js/src/forum/components/PostMeta.js | 2 +- framework/core/src/Api/Serializer/ForumSerializer.php | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/framework/core/js/src/forum/components/PostMeta.js b/framework/core/js/src/forum/components/PostMeta.js index d85d84e33..78573db5b 100644 --- a/framework/core/js/src/forum/components/PostMeta.js +++ b/framework/core/js/src/forum/components/PostMeta.js @@ -55,6 +55,6 @@ export default class PostMeta extends Component { * @returns {string} */ getPermalink(post) { - return app.forum.attribute('baseUrl') + app.route.post(post); + return app.forum.attribute('baseOrigin') + app.route.post(post); } } diff --git a/framework/core/src/Api/Serializer/ForumSerializer.php b/framework/core/src/Api/Serializer/ForumSerializer.php index a0124fd52..346f968f7 100644 --- a/framework/core/src/Api/Serializer/ForumSerializer.php +++ b/framework/core/src/Api/Serializer/ForumSerializer.php @@ -75,7 +75,8 @@ class ForumSerializer extends AbstractSerializer 'description' => $this->settings->get('forum_description'), 'showLanguageSelector' => (bool) $this->settings->get('show_language_selector', true), 'baseUrl' => $url = $this->url->to('forum')->base(), - 'basePath' => parse_url($url, PHP_URL_PATH) ?: '', + 'basePath' => $path = parse_url($url, PHP_URL_PATH) ?: '', + 'baseOrigin' => substr($url, 0, strlen($url) - strlen($path)), 'debug' => $this->config->inDebugMode(), 'apiUrl' => $this->url->to('api')->base(), 'welcomeTitle' => $this->settings->get('welcome_title'),