Fixed handling of parameters for landing page
authorAlexander Ebert <ebert@woltlab.com>
Tue, 10 Sep 2013 18:57:24 +0000 (20:57 +0200)
committerAlexander Ebert <ebert@woltlab.com>
Tue, 10 Sep 2013 18:57:24 +0000 (20:57 +0200)
wcfsetup/install/files/lib/system/request/RequestHandler.class.php

index 8b02c99c736144044664cd6389d9a6891c431cbc..e16a5a20fcc9715feb1b636f3f5a09c38dbd3a69 100644 (file)
@@ -111,7 +111,14 @@ class RequestHandler extends SingletonFactory {
                                        $redirectURL = $landingPage->getLink();
                                        $relativeRoute = str_replace(RouteHandler::getHost(), '', $redirectURL);
                                        
-                                       if ($relativeRoute == preg_replace('~index.php$~i', '', $_SERVER['REQUEST_URI']) || $relativeRoute == preg_replace('~([?&]s=[a-f0-9]{40})~', '', $_SERVER['REQUEST_URI'])) {
+                                       // strip query string for comparison
+                                       $pos = mb_strpos($relativeRoute, '?');
+                                       if ($pos !== false) $relativeRoute = mb_substr($relativeRoute, 0, $pos);
+                                       $requestUri = $_SERVER['REQUEST_URI'];
+                                       $pos = mb_strpos($requestUri, '?');
+                                       if ($pos !== false) $requestUri = mb_substr($requestUri, 0, $pos);
+                                       
+                                       if ($relativeRoute == $requestUri) {
                                                $routeData['controller'] = $landingPage->getController();
                                        }
                                        else {