我正在使用FOSUserBundle,並遇到一個我無法更正的錯誤。 (我使用Symfony 3.2.9)FOSUserBundle - 未找到「GET/login /」的路由
我想它來自我的security.yml文件,但我找不到是什麼讓我的路由錯誤。
這可能只是一個細節,但我使用nginx,我的本地URL是:127.0.0.1:83/app_dev.php/。
只有我/登錄路徑不起作用。
我的網址/login
,但它重定向我/login/
和我:No route found for "GET /login/" (from "http://127.0.0.1:83/app_dev.php/")
這裏是我的security.yml文件:
security:
encoders:
FOS\UserBundle\Model\UserInterface: bcrypt
role_hierarchy: ~
providers:
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_token_generator: security.csrf.token_manager
logout: true
anonymous: true
access_control:
- { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_ADMIN }
我config.yml( fosuserbundle config):
# FOSUser Configuration
fos_user:
db_driver: orm
from_email:
address: [email protected]
sender_name: Admin
firewall_name: main
user_class: ProjectBundle\Entity\User\User
registration:
form:
type: ProjectBundle\Form\RegistrationType
而且php bin/console debug:router
:
admin_user_index ANY ANY ANY /admin/user/
admin_user_show ANY ANY ANY /admin/user/{id}/show
admin_user_edit ANY ANY ANY /admin/user/{id}/edit
admin_user_new ANY ANY ANY /admin/user/create
home ANY ANY ANY /
lexik_translation_overview GET ANY ANY /admin/translations/
lexik_translation_grid GET ANY ANY /admin/translations/grid
lexik_translation_new GET|POST ANY ANY /admin/translations/new
lexik_translation_invalidate_cache GET ANY ANY /admin/translations/invalidate-cache
lexik_translation_list GET ANY ANY /admin/translations/api/translations
lexik_translation_profiler GET ANY ANY /admin/translations/api/translations/profiler/{token}
lexik_translation_update PUT ANY ANY /admin/translations/api/translations/{id}
lexik_translation_delete_locale DELETE ANY ANY /admin/translations/api/translations/{id}/{locale}
lexik_translation_delete DELETE ANY ANY /admin/translations/api/translations/{id}
fos_user_security_login GET|POST ANY ANY /login
fos_user_security_check POST ANY ANY /login_check
fos_user_security_logout GET|POST ANY ANY /logout
fos_user_registration_register GET|POST ANY ANY /register/
fos_user_registration_check_email GET ANY ANY /register/check-email
fos_user_registration_confirm GET ANY ANY /register/confirm/{token}
fos_user_registration_confirmed GET ANY ANY /register/confirmed
編輯:更多信息
我的routing.yml:
project:
resource: "@ProjectBundle/Controller/"
type: annotation
prefix: /
fos_user:
resource: "@FOSUserBundle/Resources/config/routing/all.xml"
登錄路徑的routing.xml:FOSUserBundle Routing File
也許我問題來自我的Nginx配置(這是我第一次使用它) :
server {
listen 83 default_server;
listen [::]:83 default_server;
server_name localhost;
root /var/www/html/MyProject/web;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
location/{
try_files $uri /app.php$is_args$args;
}
location ~ ^/(app|app_dev|app_test|config)\.php(/|$) {
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
有沒有人有想法?我真的被困在我的項目中。 預先感謝您。
噢好吧。我從來沒有用過nginx,這是我第一次:S。 你能給我你的配置嗎? –
這是來自我的項目,工作正常 security.yml:https://code.re/aj8 config.yml:https://code.re/aj9 routing.yml:https://code.re/aja –
謝謝!我明天測試它,告訴你它給了什麼:) –