Php 防火墙重定向到已翻译页面
我有一个安装了Php 防火墙重定向到已翻译页面,php,symfony,login,internationalization,fosuserbundle,Php,Symfony,Login,Internationalization,Fosuserbundle,我有一个安装了FOSUserBundle的Symfony2项目。当用户尝试访问时,系统会将其重定向到。 这是我的security.yml文件: jms_security_extra: secure_all_services: false expressions: true security: encoders: Symfony\Component\Security\Core\User\User: plaintext FOS\UserBundle\Model\UserInterf
FOSUserBundle
的Symfony2项目。当用户尝试访问时,系统会将其重定向到。
这是我的security.yml
文件:
jms_security_extra:
secure_all_services: false
expressions: true
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
FOS\UserBundle\Model\UserInterface: sha512
role_hierarchy:
ROLE_ADMIN: ROLE_USER
ROLE_SUPER_ADMIN: ROLE_ADMIN
providers:
in_memory:
memory:
users:
user: { password: userpass, roles: [ 'ROLE_USER' ] }
admin: { password: adminpass, roles: [ 'ROLE_ADMIN' ] }
fos_userbundle:
id: fos_user.user_provider.username
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
form_login:
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout: true
anonymous: true
login:
pattern: ^/demo/secured/login$
security: false
secured_area:
pattern: ^/demo/secured/
form_login:
check_path: /demo/secured/login_check
login_path: /demo/secured/login
logout:
path: /demo/secured/logout
target: /demo/
#anonymous: ~
#http_basic:
# realm: "Secured Demo Area"
access_control:
- { path: /login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: /register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: /resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: /admin/, role: ROLE_ADMIN }
- { path: /forum/, role: ROLE_USER }
现在,我已重新生成URL,以便根据本教程进行翻译:
所有这些都可以正常工作,但我尝试访问时除外,因为它重定向到而不是
我错过了什么
更新:
由于我在main
(登录路径)添加了一行代码:
它重定向到而不是,而其他URL保留
/en/
URL。实际上,/es/
不存在,因为它是默认语言。有什么建议吗?您还应该为登录路径创建路由,如下所示:
login_path:
path: /{_locale}/login
您不需要控制器定义,只需在
security.yml
中替换登录路径:/demo的行即可。。。。登录路径:登录路径将主
防火墙更改为下一个代码片段非常有效
main:
pattern: ^/
form_login:
login_path: fos_user_security_login
check_path: fos_user_security_check
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout:
path: fos_user_security_logout
target: fos_user_security_login
anonymous: true
它不起作用。但多亏了你,我才前进了。你可以看看我更新过的问题。无论如何,按照我在那里写的那样创建一个路由,这会更容易,也许你需要使用一个可以处理区域设置的侦听器。如果您只需转到url/en/login,会发生什么?如果您查看我遵循的教程,您将看到我安装了一个自动生成路由的捆绑包。
main:
pattern: ^/
form_login:
login_path: fos_user_security_login
check_path: fos_user_security_check
provider: fos_userbundle
csrf_provider: form.csrf_provider
logout:
path: fos_user_security_logout
target: fos_user_security_login
anonymous: true