Přesměrování z jiné domény a route

Dvory59
Člen | 40
+
0
-

Ahoj. Měl bych dotaz.

Mám doménu druhého řádu, kterou přesměrovávám na můj URL mého primárního webu.
V rámci této domény druhého řádu mám DNS záznamy s doménami třetího řádu, které mají nastavenou hodnotu IP adresy primárního webu. Díky tomu se to přesměrovává na hlavní stránku primárního webu. A teď ten můj hlavní problém.

Url má vždy podobu „doména3.doména2.doména1“, kde „doména3“ se mění a podle toho jak vypadá, tak se na primárním webu vyberou konkrétní data. (nebo tak bych byl rád aby to fungovalo)

V routeru mám

	$router[] = new Route('<url>.doména2.doména1/[<language en|cz>/]',array(
			'language' => 'cz',
			'presenter' => 'Expedition',
			'action' => 'default',
			'url'=>''
		),ROUTE::ONE_WAY);

V Expedition presenteru mám :

public function actionDefault($url)
	{

	\Tracy\Debugger::barDump($url);
		....
	}

Když to mám takhle nastavený a zadám URL například „kb.doména2.doména1“, kterou na webhostingu přesměrovávám na primární web, tak se mi to přesměruje, najde to tuto správnou route, ale v parametru nic není.

Vím, že těch informací jsem asi nepodal dost, ale nevím ani jaké další bych mohl poskytnout. Už s tím nějakou chvíli bojuju, bojoval jsem i s tím přesměrováním a nevím si rady. Když by jste prosím někdo měl nějaký nápad, který by mě mohl posunout, líbal bych za to ruce :)

Kamil Valenta
Člen | 752
+
0
-

A v Tracy v Route baru ve sloupci „Matched as“ ten parametr vidíš?

Z čeho dědí uvedený presenter?
Jaký je jeho konstruktor a startup()?

Editoval kamil_v (29. 4. 2019 15:00)

Dvory59
Člen | 40
+
0
-

@kamil_v Matched as je právě prázdný. Ale ta URL podle Tracy té routě odpovídá. A když v routě nastavím pro parametr url nějakou defaultní hodnotu, např:

$router[] = new Route('//<url>.doména2.doména1/[<language en|cz>/]',array(
			'language' => 'cz',
			'presenter' => 'Expedition',
			'action' => 'default',
			'url'=>'brand'
		));

tak když dám vyhledat url brand.doména2.doména1, najde mi to a vypíše správně (ale změní mi to url na domovskou adresu), když zkusím nějakou jinou url brand2.doména2.doména1, nenajde to ani tu správnou route, jako tomu je když parametr url není definovanej.

A presenter definuje z BasePresenteru, který má

public function __construct(Nette\Database\Context $database)
 {
     $this->database = $database;
 }

 protected function startup()
 {
     parent::startup();
     $this->sessionSection = $this->session->getSection("session");
 }
Kamil Valenta
Člen | 752
+
0
-

No, je to trochu těžké, když napíšeš, že „ta URL té routě odpovídá“, ale nevíme, jak „ta URL“ vypadá…

Každopádně z principu věci bych čekal, že parametr url a následující tečka budou volitelné.

$router[] = new Route('//[<url>.]%sld%.%tld%/[<language en|cz>/]',array(
            'language' => 'cz',
            'presenter' => 'Expedition',
            'action' => 'default',
            'url'=>null
        ));