Routa přesměruje jinam než má
- kudlajz
- Člen | 70
Zdravím.
Mám menší problém s routou, mám je momentálně nastavené takhle:
$container->router[] = new Route('index.php', 'Homepage:default', Route::ONE_WAY);
$container->router[] = new Route("//[<lang=en>.]localhost/p/<id [0-9]+>/", array("module" => "User", "presenter" => "Profile", "action" => "default"));
$container->router[] = new Route('//[<lang=en>.]localhost/u/<presenter>/<action>/[<id [0-9]+>]', array("module" => "User", "presenter" => "People", "action" => "default"));
$container->router[] = new Route('//[<lang=en>.]localhost/<presenter>/<action>/[<id [0-9]+>]', array("module" => "Front", "presenter" => "Homepage", "action" => "default"));
Výchozím jazykem je tedy „en“. Dejme tomu, že mám adresu na uživatelský profil ve tvaru: http://localhost/p/1/
Pokud zadám adresu en.localhost/p/1/, tak se stránka načte v pořádku, pokud zadám cz.localhost/p/1/, tak se taktéž načte v pořádku, ale když se nacházím např. na té cz.localhost/p/1/ a přepíšu cz na en a přejdu na tu adresu, tak mě to přesměruje na localhost/u/people, což odpovídá třetí routě a to mi nejde právě do hlavy.
- Ot@s
- Backer | 476
Tak jak to popisuješ, tak mi to přijde hodně zmatečné (na začátku máš en.localhost/p/1/, které funguje a na konci to samé en.localhost/p/1/, které nefunguje). Použij developer toolbar v devel režimu a podívej se které routovací pravidlo se opravdu aplikuje (na všechny uvedené příklady). Taky se podívej, zda-li nedochází ke zbytečnému vícenásobnému přesměrování v rámci routovacích pravidel.
- kudlajz
- Člen | 70
No, jde o to, že když u parametru lang mám nastavený výchozí parametr „en“, tak předpokládám, že ať už „en.localhost/p/1/“ tak „localhost/p/1/“ by to mělo přesměrovat na stejné místo. Druhý odkaz, kde chybí to „en“ to přesměruje správně, kdežto s „en“ to přesměruje na localhost/u/, což není to co chci.
Jo, jsem to popletl, omlouvám se, prostě en.localhost/cokoli a localhost/cokoli by mělo vést na stejnou stránku v jazyce „en“, ale s tím prefixem „en“ to použije výchozí hodnoty té routy „localhost/u“
Editoval kudlajz (21. 11. 2012 9:58)