How to customize FOS UserBundle URLs How to customize FOS UserBundle URLs symfony symfony

How to customize FOS UserBundle URLs


How to override / change FOSUserBundle's routes

You can override i.e the /register route in your app/config/routing.yml by re-declaring it after importing FOSUserBundle's XML routes as resources.

fos_user_register:    resource: "@FOSUserBundle/Resources/config/routing/registration.xml"    prefix: /register# ...fos_user_registration_register:    path:      /account/register    defaults:  { _controller: FOSUserBundle:Registration:register }

... or just change the prefix when importing:

fos_user_register:    resource: "@FOSUserBundle/Resources/config/routing/registration.xml"    prefix: /account/register# no need to override the route

The same goes for /login and /logout :

fos_user_security:    resource: "@FOSUserBundle/Resources/config/routing/security.xml"# ...fos_user_security_login:    path:      /account/login    defaults:  { _controller: FOSUserBundle:Security:login, _method: POST }fos_user_security_logout:    path:      /account/login    defaults:  { _controller: FOSUserBundle:Security:logout, _method: POST }

Another way to override login and logout url's

login and logout paths can aswell be configured directly in your app/config/security.yml:

security:    firewalls:         your_firewall:            # ...            form_login:                login_path: /account/login  # instead of fos_user_security_login                # ...            logout:                path: /account/logout       # instead of fos_user_security_logout                # ...

List of all of FOSUserBundle's routes in YAML format

You can directly change and then include these in your app/config/routing.yml ( no need to import the ones the bundle provides as resources then) ... or put them all into a single file and include that one as a resource...

# -> from @FOSUserBundle/Resources/routing/change_password.xmlfos_user_change_password:    pattern: /profile/password/change    defaults: { _controller: FOSUserBundle:ChangePassword:changePassword }    requirements:        _method: GET|POST# -> from @FOSUserBundle/Resources/routing/group.xmlfos_user_group_list:    pattern: /groups/list    defaults: { _controller: FOSUserBundle:Group:list }    requirements:        _method: GETfos_user_group_new:    pattern: /groups/new    pattern:    defaults: { _controller: FOSUserBundle:Group:new }    requirements:        _method: GETfos_user_group_show:    pattern: /groups/{groupname}    defaults: { _controller: FOSUserBundle:Group:show }    requirements:        _method: GETfos_user_group_edit:    pattern: /groups/{groupname}/edit    defaults: { _controller: FOSUserBundle:Group:edit }    requirements:        _method: GET|POSTfos_user_group_delete:    pattern: /groups/{groupname}/delete    defaults: { _controller: FOSUserBundle:Group:delete }    requirements:        _method: GET# -> from @FOSUserBundle/Resources/routing/profile.xmlfos_user_profile_show:    pattern: /profile/show    defaults: { _controller: FOSUserBundle:Profile:show }    requirements:        _method: GETfos_user_profile_edit:    pattern: /profile/edit    defaults: { _controller: FOSUserBundle:Profile:edit }    requirements:        _method: GET|POST# -> from @FOSUserBundle/Resources/routing/registration.xmlfos_user_registration_register:    pattern: /registration    defaults: { _controller: FOSUserBundle:Registration:register }    requirements:        _method: GET|POSTfos_user_registration_check_email:    pattern: /registration/check-email    defaults: { _controller: FOSUserBundle:Registration:checkEmail }    requirements:        _method: GETfos_user_registration_confirm:    pattern: /registration/confirm/{token}    defaults: { _controller: FOSUserBundle:Registration:confirm }    requirements:        _method: GETfos_user_registration_confirmed:    pattern: /registration/confirmed    defaults: { _controller: FOSUserBundle:Registration:confirmed }    requirements:        _method: GET# -> from @FOSUserBundle/Resources/routing/resetting.xmlfos_user_resetting_request:    pattern: /profile/password/reset    defaults: { _controller: FOSUserBundle:Resetting:request }    requirements:        _method: GETfos_user_resetting_send_email:    pattern: /profile/password/reset    defaults: { _controller: FOSUserBundle:Resetting:sendEmail }    requirements:        _method: POSTfos_user_resetting_check_email:    pattern: /profile/password/reset/check-email    defaults: { _controller: FOSUserBundle:Registration:checkEmail }    requirements:        _method: GETfos_user_resetting_reset:    pattern: /profile/password/reset/{token}    defaults: { _controller: FOSUserBundle:Registration:reset }    requirements:        _method: GET|POST# -> from @FOSUserBundle/Resources/routing/security.xmlfos_user_security_login:    pattern: /login    defaults: { _controller: FOSUserBundle:Security:login }    requirements:        _method: GET|POSTfos_user_security_check:    pattern: /login_check    defaults: { _controller: FOSUserBundle:Security:check }fos_user_security_logout:    pattern: /logout    defaults: { _controller: FOSUserBundle:Security:logout }    requirements:        _method: GET|POST