Router redirectuje na nesmysl při subdoméně

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

Mám problémy s routerem. Mám jej nadefinovaný jako je níže. Když jdu na media.example.com/… tak se hitne první pravidlo a vše ok.

Ale pokud jdu na example.com, očekával bych hitnutí druhého pravidla, protože už nesedí ani ta subdoména. Jenže ono mě to nasměruje na něco takového: http://media.example.com/…nt/homepage/

Vůbec nechápu…

public function createRouter()
{
	$router = new RouteList();
	$router[] = new Route('//media.example.com/<module>/<presenter>/<action>', 'Dashboard:default');

	$router[] = $app = new RouteList('App:Front');
	$app[] = new Route('<presenter>/<action>[/<id>]', 'Homepage:default');
	return $router;
}
David Matějka
Moderator | 6445
+
0
-

muze za to kanonizace
reseni:

  • vypnout kanonizaci
  • (lepsi) nejak upravit routy, aby app request vytvoreny druhou routou nepasoval i na prvni routu. napada me par moznosti, nejjednodussi je asi pridat FILTER_OUT na module a pro App module vracet NULL. pripadne by slo udelat z ty (sub)domeny persistentni parametr
Jiří Nápravník
Člen | 710
+
0
-

Díky za reakci. JJ, dělá to kanonizace, to jsem při debugování vyzjistil, nicméně to se mi hodně líbí a nechtěl bych o ní přijít.

Tím filtrem to řeším zatím podobně jako píšeš…

Subdoména jako persistentní parametr moc teď nechápu jak myslíš. Jen tam bude těch subdomén několik (dynamických), tak nevím ani zda by to bylo realizovatelné.

David Matějka
Moderator | 6445
+
0
-

imho by melo jit neco jako:

$router[] = new Route('//<domain media\.example\.com>/<module>/<presenter>/<action>', 'Dashboard:default');

//a v presenteru
class FooPresenter extends BasePresenter
{
	/** @persistent */
	public $domain;
}

(to persistentni $domain by bylo v presenterech pro tu prvni routu – tedy asi v nejaky BasePresenteru)

a jelikoz by presentery v App:Front nemely ten parametr $domain, neodpovidala by prvni routa pri kanonizaci…

Jiří Nápravník
Člen | 710
+
0
-

Díky za náčrt, ale pravděpodobně zůstanu u toho filtru, přijde mi to takové čistší