Как я могу переместить Symfony2 SonataAdminBundle из маршрута "/admin" в поддомен "admin"

Мне нужно переместить администратора в отдельный поддомен на Symfony2. Как мне настроить свои маршруты и безопасность?

1 ответ

Решение

Что касается безопасности, вы можете легко ограничить брандмауэр безопасности определенным хостом (начиная с Symfony 2.4), как описано в этом официальном объявлении и документации.

Здесь вы можете увидеть пример конфигурации брандмауэра администратора для домена admin.your-domain.com

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

В части маршрутизации вы можете либо изменить рефакторинг ваших административных маршрутов, чтобы они указывали на /, и использовать соответствие хоста в маршрутах, как описано в официальной документации компонента маршрутизации.

Вот пример конфигурации маршрута с опцией сопоставления хоста:

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

Или вы могли бы переписать 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/$1 [R=301,L]
Другие вопросы по тегам