Beginner: Problém s routováním, 404
- frosty22
- Člen | 373
Zdravím,
začínám s Nette a dostal jsem se do problému, který i přestože jsem prolezl snad všechy příspěvky tady, tak jsem nevyřešil, proto se bohužel musím zeptat.
Zkousil jsem si nastavit jednoduchou routu:
$router = $application->getRouter();
$router[] = new Route('/uvod/<id>', array(
'presenter' => 'Uvod',
'view' => 'default'));
Jakmile jsem toto udělal, tak všechny stránky chyba 404 (jinak doposud funkční vše). Dobře asi chyba v .htaccess, ten jsem zkusil změnit snad všemi způsoby (vím, že na serveru je povolený), aktuálně tedy ho mám:
RewriteEngine On
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_URI} =""
RewriteRule ^.*$ /public/index.php [NC,L]
RewriteCond %{REQUEST_URI} !^/public/.*$
RewriteRule ^(.*)$ /public/$1
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [NC,L]
RewriteRule ^public/.*$ /public/index.php [NC,L]
(tento .htaccess používám na jiné subdoméně tohoto hostingu u Zendu a
tam mi pracuje správně,
jinak složku mám pojmenovanou „public“ místo defaultního
„document_root“)
Zajímavé, ale je, že když zkusím RoutingDebugger, tak v něm se hlásí
vše korektně a to i cesta ona cesta: nette.example.cz/uvod/1
Čili z toho vyplývá, že chyba v .htaccessu není.
- David Grudl
- Nette Core | 8228
Pokud tam je jen tato jedna routa, tak bude fungovat pouze Presenter Uvod s akcí/view default.
Pokud ti to hází chybu 404, je dobré se podívat do error logu. Především však, neladil bych aplikaci na ostrém serveru, ale na lokále.
- frosty22
- Člen | 373
David Grudl napsal(a):
Pokud tam je jen tato jedna routa, tak bude fungovat pouze Presenter Uvod s akcí/view default.
Pokud ti to hází chybu 404, je dobré se podívat do error logu. Především však, neladil bych aplikaci na ostrém serveru, ale na lokále.
Zkouším teď jiné cesty a ty mi pracují dle manuálu..
$router[] = new Route('index.php', array(
'presenter' => 'Article',
'view' => 'show',
), Route::ONE_WAY);
$router[] = new Route('<presenter>/<view>/<id [0-9]+>', array(
'presenter' => 'Article',
'view' => 'show',
'id' => NULL,
));
akorát mi nefungujou defaultní hodnoty, když bych chtěl defaultní presenter a view..
$router[] = new Route('index.php', array(
'presenter' => 'default',
'view' => 'default',
), Route::ONE_WAY);
$router[] = new Route('<presenter>/<view>/<id [0-9]+>', array(
'presenter' => 'default',
'view' => 'default',
'id' => NULL,
));\--
Editoval frosty22 (2. 4. 2009 19:24)