Přesměrování z jiné domény a route
- Dvory59
- Člen | 40
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 | 822
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
@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 | 822
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
));