我偶然发现了一个问题,但找不到解决方案。
我想将默认的 Sonata /admin
URL 路径前缀更改为其他内容。
我尝试将 routing.yml
路由 admin
和 _sonata_admin
更改为 /admin
以外的其他内容,但仍然,它仍然是默认的管理面板路径。真是令人困惑。
如何更改默认的 /admin
路径?
更新(routing.yml
列表):
app:
resource: "@AppBundle/Controller/"
type: annotation
sonata_user_profile_show:
resource: "@SonataAdminBundle/Resources/config/routing/sonata_admin.xml"
admin:
resource: '@SonataAdminBundle/Resources/config/routing/sonata_admin.xml'
prefix: /admin
sonata_user:
resource: '@SonataUserBundle/Resources/config/routing/admin_security.xml'
prefix: /admin
_sonata_admin:
resource: .
type: sonata_admin
prefix: /admin
defaults:
_locale: "%locale%"
最佳答案
要更改网址中的默认管理前缀,您需要首先在 routing.yml
中更新,我想通过阅读您已经完成的评论,第二件事是您需要在 security 中更改此内容。 yml
还可以通过更改管理防火墙模式和 access_control
规则,如果需要,在应用以下更改后也清除缓存
路由
admin_area:
resource: "@SonataAdminBundle/Resources/config/routing/sonata_admin.xml"
prefix: /panel
_sonata_admin:
resource: .
type: sonata_admin
prefix: /panel
sonata_user:
resource: '@SonataUserBundle/Resources/config/routing/admin_security.xml'
prefix: /panel
防火墙
security:
firewalls:
admin:
pattern: /panel(.*)
context: user
form_login:
provider: fos_userbundle
login_path: sonata_user_admin_security_login
use_forward: false
check_path: sonata_user_admin_security_check
failure_path: null
logout:
path: sonata_user_admin_security_logout
target: sonata_user_admin_security_login
anonymous: true
access_control:
# Admin login page needs to be access without credential
- { path: ^/panel/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/panel/logout$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/panel/login_check$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/panel/, role: [ROLE_ADMIN, ROLE_SONATA_ADMIN] }
关于symfony - Sonata Admin - 如何更改默认/管理员前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39105549/