Routovani se subdomenou – prvni routa bere vsechny requesty

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
tr.
Člen | 79
+
0
-

Ahoj, zkousim porve routovani a nekde jsem se zasekl:

Rad bych pouzival dynamicke subdomeny cokoliv.example.com a na hlavni domene mel neco jineho. Mam tedy presenter pro hlavni domenu – Homepage a pro vsechny subdomeny Pager. Subdomeny mi funguji, ale ten samy presenter se snazi zpracovavat i dotazy na hlavni domenu.

Jak donutim routovac aby nezachytaval http://exampla.com tim prvnim radkem?

Routovani mam nastaveno takto.

$router[] = new Route('<subdomain=^([a-zA-Z]{3,16})>.example.com/', 'Pager:production');
$router[] = new Route('index.php', 'Homepage:index', Route::ONE_WAY);
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:index');

Dekuji

Paradiso
Člen | 101
+
0
-

routy se zpracovávají popořadě, takže bych to viděl takhle:

$router[] = new Route('index.php', 'Homepage:index', Route::ONE_WAY);
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:index');
$router[] = new Route('<subdomain=^([a-zA-Z]{3,16})>.example.com/', 'Pager:production');
tr.
Člen | 79
+
0
-

Není to ono, v tomto připadě prostŕední routa sebere všechno a na poslední se nedostane.

Potřeboval bych to nastavit tak aby ta prostřední sebrala jen request na subdomenu

neco.example.com → spacialni presenter

A posledni sebrala cely zbytek (defaultni routa z instalace Nette)

Paradiso napsal(a):

routy se zpracovávají popořadě, takže bych to viděl takhle:

$router[] = new Route('index.php', 'Homepage:index', Route::ONE_WAY);
$router[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:index');
$router[] = new Route('<subdomain=^([a-zA-Z]{3,16})>.example.com/', 'Pager:production');
RiskyNet
Člen | 20
+
0
-

Pořadí bych řekl je správně ale řekl bych že tam chybí lomítka pro absolutní cestu

$router[] = new Route('//<subdomain=^([a-zA-Z]{3,16})>.example.com/', 'Pager:production');
tr.
Člen | 79
+
0
-

Dekuji vam obema, vyreseno.

$router[] = new Route(‚//[www.]example.com/‘, ‚Homepage:index‘); //
$router[] = new Route(‚<presenter>/<action>[/<id>]‘, ‚Pager:production‘); //

Nazev subdomeny si pak nacitam az v prezenteru, nezjistil jsem jak ho odsud dostat dal bez tho aby se stal promennou v URL.

T.