基於子域的路由

可以使用 host 引數在 Symfony 中處理基於子域的路由。例如,_locale 引數可以用作子域值。

假設

locale: en
domain: somedomain.com

引數在 parameters.yml 配置檔案中定義,路由為:

/**
 * @Route(
 *      "/",
 *      name="homepage",
 *      host="{_locale}.{domain}",
 *      defaults={"_locale" = "%locale%", "domain" = "%domain%"},
 *      requirements={"_locale" = "%locale%|de|fr", "domain" = "%domain%"}
 * )
 * @Route(
 *      "/",
 *      name="homepage_default",
 *      defaults={"_locale" = "%locale%"}
 * )
 */

從這一點來看,路由器可以處理諸如 http://de.somedomain.com 之類的 URI。第二個 @Route 註釋可以用作預設語言環境和 void 子域 http://somedomain.com 的後備。