Neos.Neos/Classes/Controller/Frontend/NodeController.php
protected function handleShortcutNode(NodeInterface $node)
    {
        $resolvedNode = $this->nodeShortcutResolver->resolveShortcutTarget($node);
        if ($resolvedNode === null) {
            throw new NodeNotFoundException(sprintf('The shortcut node target of node "%s" could not be resolved', $node->getPath()), 1430218730);
        } elseif (is_string($resolvedNode)) {
            $this->redirectToUri($resolvedNode);
        } elseif ($resolvedNode instanceof NodeInterface && $resolvedNode === $node) {
            throw new NodeNotFoundException('The requested node does not exist or isn\'t accessible to the current user', 1502793585);
        } elseif ($resolvedNode instanceof NodeInterface) {
            $this->redirect('show', null, null, ['node' => $resolvedNode]);
        } else {
            throw new UnresolvableShortcutException(sprintf('The shortcut node target of node "%s" resolves to an unsupported type "%s"', $node->getPath(), is_object($resolvedNode) ? get_class($resolvedNode) : gettype($resolvedNode)), 1430218738);
        }
    }
protected function handleShortcutNode(NodeInterface $node)
    {
        $resolvedNode = $this->nodeShortcutResolver->resolveShortcutTarget($node);
        if ($resolvedNode === null) {
            throw new NodeNotFoundException(sprintf('The shortcut node target of node "%s" could not be resolved', $node->getPath()), 1430218730);
        } elseif (is_string($resolvedNode)) {
            $this->redirectToUri($resolvedNode);
        } elseif ($resolvedNode instanceof NodeInterface && $resolvedNode === $node) {
            throw new NodeNotFoundException('The requested node does not exist or isn\'t accessible to the current user', 1502793585);
        } elseif ($resolvedNode instanceof NodeInterface) {
            $this->redirect('show', null, null, ['node' => $resolvedNode]);
        } else {
            throw new UnresolvableShortcutException(sprintf('The shortcut node target of node "%s" resolves to an unsupported type "%s"', $node->getPath(), is_object($resolvedNode) ? get_class($resolvedNode) : gettype($resolvedNode)), 1430218738);
        }
    }
protected function handleShortcutNode ( NodeInterface $ node ) { $ resolvedNode = $ this -> nodeShortcutResolver -> resolveShortcutTarget ( $ node ) ; if ( $ resolvedNode === null ) { throw new NodeNotFoundException ( sprintf ( 'The shortcut node target of node "%s" could not be resolved' , $ node -> getPath ( ) ) , 1430218730 ) ; } elseif ( is_string ( $ resolvedNode ) ) { $ this -> redirectToUri ( $ resolvedNode ) ; } elseif ( $ resolvedNode instanceof NodeInterface && $ resolvedNode === $ node ) { throw new NodeNotFoundException ( 'The requested node does not exist or isn\'t accessible to the current user' , 1502793585 ) ; } elseif ( $ resolvedNode instanceof NodeInterface ) { $ this -> redirect ( 'show' , null , null , [ 'node' => $ resolvedNode ] ) ; } else { throw new UnresolvableShortcutException ( sprintf ( 'The shortcut node target of node "%s" resolves to an unsupported type "%s"' , $ node -> getPath ( ) , is_object ( $ resolvedNode ) ? get_class ( $ resolvedNode ) : gettype ( $ resolvedNode ) ) , 1430218738 ) ; } }
Handles redirects to shortcut targets in live rendering.

@param NodeInterface $node
@return void
@throws NodeNotFoundException|UnresolvableShortcutException
Handles redirects to shortcut targets in live rendering .