Koncovka domény com a eu a překladová tabulka v routeru
- zoool
- Člen | 89
Ahoj,
mám v routeru překladovou tabulku pro jazyky podle domény, pokud zadám
doménu s com tak se automaticky přesměruje na eu, jak toto chování
zrušit? Když odstraním ve FILTER_TABLER to ‚com‘ ⇒ ‚en‘, tak se
přesměrování již nedělá, ale zase to nevybere ten jazyk.
Děkuji
$routerFront[] = new Routers\Route($pred.'<locale sk|de|eu|com|cz>/<presenter>/<action>[/<id>]/',
[
"presenter" => "Homepage",
"action" => "default",
'locale' => [
Routers\Route::FILTER_TABLE => [
'com' => 'en',
'eu' => 'en',
]
]
]
);
Editoval zoool (18. 1. 2023 14:50)
- m.brecher
- Generous Backer | 862
Ahoj,
Nette Router v zásadě hledá shodu s routou tu přeloží na $request a pošle do presenteru. Ten kontroluje duplicitu url a to tak, že vygeneruje z $reuest url a porovná s aktuálním url. Pokud se liší, tak na url z routeru PŘESMĚRUJE.
Takže routy musíme navrhnout tak, aby nevznikaly duplicity. Duplicitu vidím v tom, že url domen.com a domena.eu vrací stejný $request. Jako kanonickou bere Router poslední ve filtru.
Nemíchej dohromady v jednom parametru $locale koncovku domény a jazyk. Vyhoď filter z Routeru a např. v BasePresenteru si převeď domény na příslušnou jazykovou verzi.