aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes
diff options
context:
space:
mode:
Diffstat (limited to 'phpBB/includes')
-rw-r--r--phpBB/includes/functions.php10
1 files changed, 10 insertions, 0 deletions
diff --git a/phpBB/includes/functions.php b/phpBB/includes/functions.php
index 0a10a9604c..c937b8f562 100644
--- a/phpBB/includes/functions.php
+++ b/phpBB/includes/functions.php
@@ -2662,6 +2662,16 @@ function redirect($url, $return = false, $disable_cd_check = false)
// Make sure no &'s are in, this will break the redirect
$url = str_replace('&', '&', $url);
+ // The url currently uses the web root path.
+ // However as we prepend the full board url later,
+ // we need to remove the relative web root path and
+ // prepend the normal root path again. Otherwise redirects
+ // from inside routes will not work as intended.
+ if ($phpbb_path_helper instanceof \phpbb\path_helper)
+ {
+ $url = $phpbb_path_helper->remove_web_root_path($url);
+ }
+
// Determine which type of redirect we need to handle...
$url_parts = @parse_url($url);