我遇到子域路由问题。
我希望在子域 admin.domain.com
上进行管理admin:
host: "www.admin.domain.com"
resource: "@WebAdminBundle/Resources/config/routing.yml"
schemes: [https]
shop:
resource: "@WebShopBundle/Resources/config/routing.yml"
schemes: [https]
但是来自 admin 我可以访问商店
中的路线我的DNS:
CNAME admin is an alias of domain.com
CNAME www.admin is an alias of admin.domain.com
Plesk配置:
admin.domain.com与domain.com具有相同的文档记录
有人可以帮我吗?
答案 0 :(得分:0)
如果要添加子域,可以通过不同方式执行此操作。最简单的是:
像之前一样在routing.yml中定义路由,但是www存在问题 - 请勿使用它。因此,您对admin区域的主机指令将为host: "admin.domain.com"
我们在routing.yml中有一些小改动
admin:
host: "admin.domain.com"
resource: "@WebAdminBundle/Resources/config/routing.yml"
schemes: [https]
shop:
resource: "@WebShopBundle/Resources/config/routing.yml"
schemes: [https]
在config.yml中,您可以定义domain_name变量:
parameters:
#...
domain_name: "domain.com"
没有必要,但很方便!
并在security.yml access_control指令中。前三个路径 - 是与fosuser一起使用的示例,最后一个路径是通过“admin”子域访问您的管理区域
security:
# ...
access_control:
- { path: ^/login$, host: ^%domain_name%$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, host: ^%domain_name%$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, host: ^%domain_name%$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { host: ^admin\.%domain_name%$, roles: ROLE_ADMIN }
这不是最佳做法,但此解决方案解决了子域
的问题