简体   繁体   中英

Sonata Admin - how to change default /admin prefix

I've stumbled upon an issue, and I can't find a solution to it.

I want to change default Sonata /admin URL path prefix to something else. I've tried to change routing.yml routes admin and _sonata_admin to something other than /admin , but still, it's remain the default admin panel path. Really confusing.

How to change that default /admin path?

UPDATE ( routing.yml listing):

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%"

To change default admin prefix in url you need to update in routing.yml first which i guess by reading comments you already have done, second thing to you need change this in security.yml also by changing the admin firewall pattern and access_control rules, if needed clear your cache too after applying below changes

Routing

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

Firewall

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] }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM