Přesměrování – zobrazuje <h1>Redirect</h1>
- Morfeo21
- Člen | 35
Zdravím,
ve vyvíjené aplikaci mám vlastní router, který řeší celé routování.
Na začátku metody match
mám metody, která dle vlastní DB
tabulky přesměrování může přesměrovat na novou adresu. Pokud se tak
stane, tak zavolám $httpResponse->redirect($url, 301);
.
Problém, že se při tom vyhodí laděnka
s hláškou "Possible problem: you are sending a HTTP header while already having some data in output buffer. Try OutputDebugger or start session earlier."
Problém je, že to je v routeru a nikde předtím nic nevypisuju. Hlášku
vyhazuje metoda checkHeaders a výstup ob_get_contentens
je právě:
"<h1>Redirect</h1>
<p><a href="/core.religis.cz/bmw-10/">Please click here to continue</a>.</p>" (95)
Kus kódu, který přesměrovává:
public function match(Nette\Http\IRequest $httpRequest)
{
$this->redirectToNewestUrl($httpRequest);
...
}
private function redirectToNewestUrl($httpRequest)
{
...
$this->httpResponse->redirect($basePath.$redirection->new_url.'/'.$queryString, 301);
}
Všechny ostatní redirecty např. po odeslání formuláře apod. fungují naprosto v pohodě, problém je jen tady s tímto.
Odkaz na blue screen: http://apps.aurelia-system.cz/…ioError.html
Přehlížím něco? Díky za pomoc!
- David Matějka
- Moderator | 6445
V ladence je hezky videt, ze presmerovani provadi routing panel.
imho by router vubec nemel resit presmerovani. o to at se postara presenter, respektive automaticka kanonizace url