Tôi đang cố gắng thiết lập hệ thống định tuyến với tên miền phụ đại diện cho ngôn ngữ hiện tại. Routing được thiết lập thông qua @Routing
chú thích và trông như thế này:Định tuyến Symfony - ngôn ngữ là tên miền phụ với dự phòng mặc định
/**
* @Route(
* "/",
* name="homepage",
* host="{locale}.{domain}",
* defaults={"locale" = "en", "domain" = "%domain%"},
* requirements={"locale" = "en|de|fr", "domain" = "%domain%"}
*)
*/
Hoạt động tốt cho URL của như en.somedomain.com
hoặc de.somedomain.com
, nhưng thất bại trong việc tìm con đường đúng cho somedomain.com
, mà không locale.
Tôi hiểu rằng vì tham số host
, được thiết lập để đại diện cho chính xác locale.domain mẫu, nhưng tôi không thể tìm cách để nói với hệ thống định tuyến Symfony rằng có thể bổ sung, mặc định host
.
Tìm kiếm tất cả xung quanh cho điều này, nhưng không tìm thấy gì đặc biệt. Sẽ đánh giá cao sự giúp đỡ nào!
CẬP NHẬT
Có thực sự là một cách để làm điều đó, bằng cách thêm một @Route
trong chú thích, mà không host
tham số:
/**
* @Route(
* "/",
* name="homepage_default",
* defaults={"locale" = "en"}
*)
*/
nhưng thats trông hơi bẩn, và tôi không sử dụng thông số %domain%
ở đó, điều quan trọng đối với tôi - giả sử, nếu tôi cần một tên miền phụ khác cho phiên bản di động.
Đó là khá hữu ích để biết, tuy nhiên, vấn đề của tôi không phải là với lỗi trình biên dịch; đó là trường hợp ngoại lệ 'Không thể tìm thấy lộ trình' chính xác của Symfony khi tôi yêu cầu miền mặc định. Và vấn đề là tôi không thể định nghĩa nhiều tham số 'host', như:' host = {"{locale}. {Domain}", "{domain}"} '. Chú thích trên tất cả đều tốt đẹp và hoạt động. – Nevertheless
Tôi nghĩ nguyên nhân của vấn đề là Symfony "không thể nhìn thấy" cài đặt miền địa phương mặc định và đó là lý do tại sao nó không thể khớp với một tuyến đường với nó; bởi vì tôi đã không nhận được bất kỳ lỗi trình biên dịch nào trước đây nhưng thông số mặc định của tôi không hoạt động. –