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
+
0
-

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)

srigi
Nette Blogger | 558
+
0
-

No predne routerom nikam nepresmerujes. Musis si to zariadit sam, tak, ze neznama URL ti spadne do zvolenej destination (<presenter>/<action>) a az v nej presmerujes inam.

ZETCHA
Člen | 59
+
0
-

A o to mi právě jde. Sic jsem se špatně vyjádřil ale cíl je stejný – Nasměrovat neznámou url na určitý presenter / action. Nějak to nemůžu trefit.

srigi
Nette Blogger | 558
+
0
-

Hral si sa s poradim? Skus tu tebou navrhnutu routu presunut na „dno“. Skus na ladenie vyuzit RoutingDebugger (je v distribucnom baliku).

ZETCHA
Člen | 59
+
0
-

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. :-(

despiq
Člen | 320
+
0
-
<?php
Route::$styles['id'] = array(
	Route::PATTERN => '.*?',
);

$router[] = new Route('/<id>', array(
	'module'    => 'Frontend',
	'presenter' => 'Catalogue',
	'action'      => 'default',
	'id'      => NULL
));
?>

tohle by melo jit

ZETCHA
Člen | 59
+
0
-

Mělo a jede! :-) Super! Díky Vám za váš čas a rady.