Ich folgte den Anweisungen here und ich habe eine benutzerdefinierte error.html.twig (Der 3. Fall). Ich habe auch einen Custom Controller gemacht.Symfony: Redirect Fehler 403, 500, ... auf die 404 Seite
Ich habe 2 Probleme:
erstes Problem Wo muß ich meine benutzerdefinierten Controller setzen? Ich verstehe nicht, die doc dafür: https://symfony.com/doc/current/controller/error_pages.html#overriding-the-default-exceptioncontroller
zweites Problem Ich versuche, 403, 500 zu umleiten, ... Fehler auf dieser Seite. Wenn Sie versuchen, auf einen Ordner zuzugreifen, haben Sie "Zugriff verboten".
Ich habe versucht, dies in der .htaccess hinzuzufügen: ErrorDocument 403 http://www.xxx.fr/
, aber ich weiß nicht, was die URL der 404-Seite ist.
EDIT
Ok ich verstanden, wo mein Controller zu setzen, aber ich erhalte eine Fehlermeldung.
Das ist mein ExceptionController.php
namespace Symfony\Bundle\TwigBundle\Controller;
use Symfony\Component\Debug\Exception\FlattenException;
use Symfony\Component\HttpKernel\Log\DebugLoggerInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
class ExceptionController
{
public function showAction()
{
$dir = $this->get('kernel')->getRootDir() . '/../web/images/theme/404/';
$dh = opendir($dir);
$errorFiles = array();
while (false !== ($filename = readdir($dh)))
if ($filename != '.' && $filename != '..' && $filename[0] != '.')
$errorFiles[] = $filename;
shuffle($errorFiles);
return $this->render('errors/show.html.twig', [
'gifs' => $errorFiles
]);
}
}
Der Fehler
Whoops, sieht aus wie etwas schief gelaufen ist.
1/1 UndefinedMethodException in ExceptionController.php Linie 30: Versuchte namens eine undefinierte Methode aufrufen "get" der Klasse "Symfony \ Bundle \ TwigBundle \ Controllers \ ExceptionController". in ExceptionController.php Zeile 30
Dieser Controller funktionierte gut mit einer klassischen Ansicht.
1) 'ExceptionController.php' innen' AppBundle' „Controller“ Ordner – pavlovich
Von einem kurzen Blick auf die Symfony Seite, würde ich sagen, Sie keine zusätzlichen Apache-Richtlinien müssen. –
@Olaf Dietsche Eigentlich bekomme ich "Hoppla, ein Fehler ist aufgetreten" wenn ich versuche auf eine leere URL zuzugreifen. Aber wenn ich versuche, auf einen Ordner zuzugreifen (ich habe Optionen -Indexe) bekomme ich "Access Forbidden". Dann ist es nicht die gleiche Seite;) – Pierrou