404 a 500 chyby pořád mi to hazí 500 a nevím proč jsem zoufalý
- cvit84
- Člen | 43
Už jsem naprosto bezradný. Vždy když zadám jinou url, která neexistuje tak mi to pořád hazí 500 místo 404.
error presenter
namespace App\Presenters;
use Nette\Application\BadRequestException;
use Nette\Application\IPresenter;
use Nette\Application\IResponse;
use Nette\Application\Request;
use Nette\Application\Responses\CallbackResponse;
use Nette\Application\Responses\ForwardResponse;
use Nette\Http;
use Nette\SmartObject;
use Tracy\ILogger;
/**
* Presenter pro vlastní zpracování chyb na stránce.
* @package App\Presenters
*/
class ErrorPresenter implements IPresenter
{
use SmartObject;
/** @var ILogger Služba pro logování. */
private $logger;
/**
* Konstruktor s injektovanou službou pro logování.
* @param ILogger $logger automaticky injektovaná Nette služba pro logování
*/
public function __construct(ILogger $logger)
{
$this->logger = $logger;
}
/**
* Zpracovává vyhozenou výjimku vygenerováním vlastní odpovědi.
* @param Request $request originální požadavek, který způsobil výjimku
* @return IResponse odpověď na vyhozenou výjimku
*/
public function run(Request $request)
{
$exception = $request->getParameter('exception');
if ($exception instanceof Nette\Application\BadRequestException) {
list($module, , $sep) = Nette\Application\Helpers::splitName($request->getPresenterName());
return new Responses\ForwardResponse($request->setPresenterName($module . $sep . 'Error4xx'));
}
// Jinak se jedná o chybu serveru.
$this->logger->log($exception, ILogger::EXCEPTION); // Loguje výjimku.
// Vrací jako odpověď chybovou stránku serveru.
return new CallbackResponse(function (Http\IRequest $httpRequest, Http\IResponse $httpResponse) {
// Pokud je jako odpověď očekáváno HTML, načti šablonu pro chybovou stránku serveru.
if (preg_match('#^text/html(?:;|$)#', $httpResponse->getHeader('Content-Type')))
require __DIR__ . '/../templates/Error/500.phtml';
});
}
config
# Presentery.
error: Error
currency: 'Kč' # Měna.
# Nastavení aplikace.
application:
errorPresenter: %error% # Presenter pro zpracování chyb a výjimek v aplikaci.
catchExceptions: yes # Nesměrovat výjimky na ErrorPresenter ale na laděnku.
mapping: # Konfigurace vyhledávání cesty k prezenterům.
*: App\*Module\Presenters\*Presenter
Poraďte mi prosím co mám dělat. Nevím co mám špatně. :/