我如何将 Symfony Sonata Admin Bundle 从“/admin”路由移动到 "admin" 子域

How I can move Symfony2 SonataAdminBundle from "/admin" route to "admin" subdomain

我需要将管理员移动到 Symfony2 上的单独子域。我应该如何配置路由和安全性?

对于安全部分,您​​可以轻松地将安全防火墙限制到特定主机(自 Symfony 2.4 起),如 official announcement and the documentation 中所述。

您可以在此处查看域 admin.your-domain.comadmin 防火墙配置示例

security:
    firewalls:
        admin:
            pattern:    ^/
            host:       admin\.your-domain\.com
            http_basic: true

对于路由部分,您可以重构您的 admin-routes 以指向 / 并使用 host 匹配 official documentation of the routing component 中描述的路由。

这是一个带有主机匹配选项的路由配置示例:

admin_dashboard:
    path: /
    host: "admin.your-domain.com"
    defaults: { _controller: AdminBundle:Dashboard:homepage }

或者您可以使用 Web 服务器配置将 url www.your-domain.com/admin 重写为 admin.your-domain.com。这是 apache 的示例:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?your-domain\.com$
RewriteRule ^admin/(.*) http://admin.your-domain.com/ [R=301,L]