Routování špatně kanonizuje
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- genesiscz
- Člen | 21
Zdravím. Nejdříve ukážu Router
$router = new RouteList();
$router[] = new \Nette\Application\Routers\CliRouter();
$router[] = new Route("index.php", "Homepage:default", Route::ONE_WAY);
$router[] = new Route("", "Homepage:default", Route::ONE_WAY); // a
// .... víc rout
$k = "(kart|live|race|settings|drivers|events|queue|results)";
$router[] = new Route("<presenter $k>/<id [0-9]+>", "Kart:edit");
$router[] = new Route("<presenter $k>/", "Kart:default"); // b
//$router[] = new Route("<presenter $k>/<action>[/<id>]", "Kart:default");
// ... víc nepotřebných rout
Z nějakého důvodu mi to při přístupu na /kart (nebo /kart/)
přesměrovává na „/“.
Nechápu důvod, pokud změním default u routy s poznámkou „b“ na
Cokoliv:default, začne to fungovat.
Fungují i ostatní url, ale /kart/ (/kart) prostě nefungují a vždy se
kanonizují na Homepage:default ("", routa s poznámkou a).
V čem je zakopaný pes? Přece to, že v url je původní routa neznamená, že jí to musí kanonizovat, navíc na něco, na co to podle dokumentace ani kanonizovat nemá, ne?