Sto provando a configurare il sistema di routing con sottodominio che rappresenta la locale corrente. Routing viene impostata tramite @Routing
annotazione e si presenta così:Instradamento di symfony - locale come sottodominio con fallback predefinito
/**
* @Route(
* "/",
* name="homepage",
* host="{locale}.{domain}",
* defaults={"locale" = "en", "domain" = "%domain%"},
* requirements={"locale" = "en|de|fr", "domain" = "%domain%"}
*)
*/
funziona bene per URL come en.somedomain.com
o de.somedomain.com
, ma non riesce a trovare percorso corretto per somedomain.com
senza locale.
Capisco che a causa del parametro host
, che è impostato per rappresentare esattamente locale.domain modello, ma non riesco a trovare modo di dire sistema di routing Symfony che ci potrebbe essere ulteriore, di default host
.
Cerca tutto intorno, ma non ha trovato nulla di particolare. Gradirei qualsiasi aiuto!
UPDATE
V'è in realtà un modo per farlo, con l'aggiunta di un'altra @Route
in annotazione, senza host
parametro:
/**
* @Route(
* "/",
* name="homepage_default",
* defaults={"locale" = "en"}
*)
*/
ma questo sembra un po 'sporca, e io non sono utilizzando il parametro %domain%
lì, che è importante per me, ad esempio se avessi bisogno di un altro sottodominio per la versione mobile.
che è molto utile sapere, però, il mio problema non è con errori di compilazione; è Symfony "Impossibile trovare l'eccezione del percorso corretto" quando richiedo il dominio predefinito. E il problema è che non posso definire più parametri 'host', come:' host = {"{locale}. {Dominio}", "{dominio}"} '. Annotazioni soprattutto belle e funzionanti. – Nevertheless
Ho pensato che la causa del problema è che Symfony "non può vedere" quell'impostazione locale predefinita ed è per questo che non può corrispondere ad una rotta; perché non ho avuto errori di compilatore in precedenza ma il mio parametro predefinito non funzionava. –