Symfony 如何在没有自定义控制器的情况下配置重定向

Symfony 如何在没有自定义控制器的情况下配置重定向,symfony,routing,Symfony,Routing,我的应用程序中有两个角色:用户和管理员 我将访问控制配置为,用户无法访问我的页面:您好,只有管理员有此权限:我在我的security.yml中使用了此代码 access_control: - { path: ^/hello/, role: ROLE_ADMIN } 当一个简单用户将在根目录中连接时:hello。我有错误:拒绝访问: 我如何配置我的应用程序,当简单用户想要访问根hello时,它将重定向到主页(或连接页) 感谢您的帮助也许您应该创建kernel.listener.access

我的应用程序中有两个角色:用户和管理员 我将访问控制配置为,用户无法访问我的页面:您好,只有管理员有此权限:我在我的security.yml中使用了此代码

access_control:
   - { path: ^/hello/, role: ROLE_ADMIN }
当一个简单用户将在根目录中连接时:hello。我有错误:拒绝访问:

我如何配置我的应用程序,当简单用户想要访问根hello时,它将重定向到主页(或连接页)


感谢您的帮助

也许您应该创建kernel.listener.accessDenied?

在处理/hello路由的控制器中,添加逻辑以根据角色重定向用户。您可以通过在该控制器中添加以下代码行来实现这一点

    if ($this->get('security.context')->isGranted('ROLE_USER')) {
        return $this->redirect($this->generateUrl('Route for Main page'));
    }

为了给出更好的答案(以及我的+1),你必须在这里报告代码(也因为链接答案被强烈劝阻),我同意链接答案评论;我试着去关注这个链接,它的状态是404。因此,没有人能够尝试和查阅代码。我认为stackoverflow链接是允许的,给你:@KarolWojciechowski编辑上面的答案,这样我就可以删除否决票了。。)感谢您的回复,在我的例子中,我使用的是fosuserbundle,我应该在哪里添加代码,在哪个控制器中?安全控制器???