diff --git a/Classes/Decoder/UrlDecoder.php b/Classes/Decoder/UrlDecoder.php index 04db5120..6c152af8 100644 --- a/Classes/Decoder/UrlDecoder.php +++ b/Classes/Decoder/UrlDecoder.php @@ -1122,8 +1122,9 @@ protected function handleFileNameMappingToGetVar(&$fileNameSegment, array &$getV protected function handleNonExistingPostVarSet($pageId, $postVarSetKey, array &$pathSegments) { $failureMode = $this->configuration->get('init/postVarSet_failureMode'); if ($failureMode == 'redirect_goodUpperDir') { - $nonProcessedArray = array($postVarSetKey) + $pathSegments; + $nonProcessedArray = array_merge( array($postVarSetKey), $pathSegments ); $badPathPart = implode('/', $nonProcessedArray); + $badPathPartPos = strrpos($this->originalPath, $badPathPart); $badPathPartLength = strlen($badPathPart); if (strpos($badPathPart, '/') !== FALSE || $badPathPartLength === 0) { // There are two or more adjacent slashes in the URL, e.g. "good/good//index.html" or "good/good//bad///index.html" diff --git a/Classes/Hooks/DataHandler.php b/Classes/Hooks/DataHandler.php index 2ac1c2b2..254f203c 100644 --- a/Classes/Hooks/DataHandler.php +++ b/Classes/Hooks/DataHandler.php @@ -79,7 +79,7 @@ public function processCmdmap_deleteAction($table, $id) { * @param int $id */ public function processCmdmap_postProcess($command, $table, $id) { - if ($command === 'move' && $table === 'pages') { + if ( ( $command === 'move' || $command === "version" ) && $table === 'pages') { $this->expireCachesForPageAndSubpages((int)$id, 0); $languageOverlays = $this->getRecordsByField('pages_language_overlay', 'pid', $id);