Próbuję skonfigurować system routingu z subdomeną reprezentującą bieżące ustawienia narodowe. Routing jest ustawiony poprzez @Routing
adnotacji i wygląda następująco:Routing Symfony - ustawienia regionalne jako subdomena z powrotem do domyślnego
/**
* @Route(
* "/",
* name="homepage",
* host="{locale}.{domain}",
* defaults={"locale" = "en", "domain" = "%domain%"},
* requirements={"locale" = "en|de|fr", "domain" = "%domain%"}
*)
*/
działa dobrze dla URL jak en.somedomain.com
lub de.somedomain.com
, ale nie znajdzie prawidłowej trasy dla somedomain.com
bez lokalizacji.
Rozumiem, że ze względu na parametr host
, że jest ustawiony do reprezentowania dokładny locale.domain wzór, ale nie mogę znaleźć sposób, aby powiedzieć systemu routingu Symfony, że nie może być dodatkowy, domyślny host
.
Przeszukałem wszystko, ale nie znalazłem nic szczególnego. Doceniam każdą pomoc!
UPDATE
Tu jest rzeczywiście sposób to zrobić, dodając kolejną @Route
w adnotacji, bez host
parametru:
/**
* @Route(
* "/",
* name="homepage_default",
* defaults={"locale" = "en"}
*)
*/
ale to wygląda trochę brudny, a ja nie jestem używając tam parametru %domain%
, co jest dla mnie ważne - powiedzmy, gdybym potrzebował innej subdomeny dla wersji mobilnej.
Warto wiedzieć, że mój problem nie dotyczy błędów kompilatora; to Symfony "Nie można znaleźć prawidłowego wyjątku trasy", gdy zażądam domeny domyślnej. Problem polega na tym, że nie mogę zdefiniować wielu parametrów "hosta", takich jak: 'host = {" {locale}. {Domain} "," {domain} "}'. Adnotacje ponad wszystko dobrze i działa. – Nevertheless
Myślałem, że przyczyną problemu jest to, że Symfony "nie widzi" tego domyślnego ustawienia lokalnego i dlatego nie może dopasować do niego trasy; ponieważ nie otrzymałem wcześniej żadnych błędów kompilatora, ale mój domyślny parametr po prostu nie działał. –