我如何将 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.com 的 admin 防火墙配置示例
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]
我需要将管理员移动到 Symfony2 上的单独子域。我应该如何配置路由和安全性?
对于安全部分,您可以轻松地将安全防火墙限制到特定主机(自 Symfony 2.4 起),如 official announcement and the documentation 中所述。
您可以在此处查看域 admin.your-domain.com 的 admin 防火墙配置示例
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]