Jak na routu, která řeší URL neodpovídající žádné jiné routě?
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- ZETCHA
- Člen | 59
Chtěl bych připravit routu, která při zadání url neodpovídající
žádné jiné routě přesměruje na určenou výchozí routu.
Routy mám teď takto:
<?php
if (function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules())) {
$router[] = new Route('admin/<presenter>/<action>/<id>', array(
'module' => 'Admin',
'presenter' => 'Default',
'action' => 'default',
'id' => null
));
$router[] = new Route('index.php', array(
'module' => 'Front',
'presenter' => 'Pages',
), Route::ONE_WAY);
$router[] = new Route('<presenter pages|categories|brands>/<id>', array(
'module' => 'Front',
'action' => 'default',
));
$router[] = new Route('<presenter>/<action>/<id>', array(
'presenter' => 'Front:Pages',
'action' => 'default',
'id' => NULL,
));
} else {
$router[] = new SimpleRouter('Front:Pages:default');
}
?>
Potřebuji přesměrovat např. url „/franta/pepa/jednicka/atd/“ na Front:Pages:test.
Zkoušel jsem něco takovýho:
<?php
$router[] = new Route('[.+]', array(
'presenter' => 'Front:Pages',
'action' => 'test',
));
?>
ale to mi nejede. Testoval jsem větší množství možností, ale asi to
beru špatným směrem. Nasměrujete mě někdo? Prosím.
Dík
Editoval ZETCHA (24. 5. 2010 18:44)
- ZETCHA
- Člen | 59
Hmmm, bez efektu. Stále se nedaří.
Už jsem vymyslel i něco takovýho:
<?php
$router[] = new Route('<id>', array(
'presenter' => 'Front:Pages',
'action' => 'test',
));
$router[3]->addStyle('id', NULL);
$router[3]->setStyleProperty('id', Route::PATTERN, '.*?');
?>
ale úspěch byl je částečný. /blabla.html nasměroval, ale /ggg/blabla.html už ne. :-(