Symfony2: The requested URL /app_dev.php/security/login_check wurde nicht auf diesem server
Ich habe ein Problem immer wenn ich versuche zu einloggen, aber dieses Problem tritt nur mit dem einen Ubuntu-Server, wo die Website hochgeladen werden, und mit xampp auf windows funktioniert Prima.
Ich hatte keine Ahnung, was falsch mit es. Ich sehe nichts auf die log-Datei.
Hier ist die Sicherheit.yml-Datei:
security:
encoders:
Op\AppSecurityBundle\Entity\User: sha512
Symfony\Component\Security\Core\User\User: plaintext
providers:
default:
entity: { class: AppSecurityBundle:User, property: email }
role_hierarchy:
ROLE_OPTIME_ADMIN: ROLE_OPT_USER
ROLE_SUPER_ADMIN: [ROLE_OPT_USER, ROLE_OPT_ADMIN, ROLE_ALLOWED_TO_SWITCH]
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
prizes:
pattern: ^/admin|^/security|^/landing|^/reports|^/catalog
form_login:
check_path: /security/login_check
login_path: /
provider: default
success_handler: whos_online
failure_handler: whos_online
logout:
path: /security/logout
target: /
success_handler: whos_online
access_control:
- { path: ^/admin, roles: [ROLE_OPT_ADMIN] }
- { path: ^/security, roles: [ROLE_OPT_ADMIN, ROLE_OPT_USER] }
- { path: ^/landing, roles: [ROLE_OPT_ADMIN, ROLE_OPT_USER] }
- { path: ^/reports, roles: [ROLE_OPT_ADMIN, ROLE_OPT_USER] }
- { path: ^/catalog, roles: [ROLE_OPT_ADMIN] }
routing_dev.yml
_assetic:
resource: .
type: assetic
_wdt:
resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
prefix: /_wdt
_profiler:
resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
prefix: /_profiler
_main:
resource: routing.yml
routing.yml
ws:
resource: "@BeSimpleSoapBundle/Resources/config/routing/webservicecontroller.xml"
prefix: /ws
security:
resource: @AppSecurityBundle/Resources/config/routing.yml
parameter:
resource: @ParameterBundle/Resources/config/routing.yml
status:
resource: @AppStatusBundle/Resources/config/routing.yml
csc:
resource: @CSCBundle/Resources/config/routing.yml
catalog:
resource: @CatalogBundle/Resources/config/routing.yml
prizes:
resource: @PrizesBundle/Resources/config/routing.yml
reports:
resource: @ReportsBundle/Resources/config/routing.yml
AppSecurityBundle/Resources/config/routing.yml
_security:
resource: "@AppSecurityBundle/Controller/AppSecurityController.php"
type: annotation
Anmerkungen in AppSecurityController.php
/**
* @Route("/", name="_login")
* @Template()
*/
public function loginAction( )
{
//hidden
}
/**
* @Route("/security/login_check", name="_security_check")
*/
public function securityCheckAction( )
{
//The security layer will intercept this request
}
/**
* @Route("/security/logout", name="_logout")
*/
public function logoutAction( )
{
//The security layer will intercept this request
}
/**
* @Route("/landing", name="_landing")
* @Template()
*/
public function landingAction( )
{
return array ( );
}
Ich entschuldige mich, wenn dies eine dumme Frage. Ich habe keine Ahnung, warum es funktioniert lokal aber nicht auf dem server.
Ich bin mit Symfony 2.0.12, und Ubuntu Server 11.10
Hinzugefügt:
Wenn ich mit php app/console router:debug bekomme ich
[router] Current routes
Name Method Pattern
_wdt ANY /_wdt/{token}
_profiler_search ANY /_profiler/search
_profiler_purge ANY /_profiler/purge
_profiler_import ANY /_profiler/import
_profiler_export ANY /_profiler/export/{token}.txt
_profiler_search_results ANY /_profiler/{token}/search/results
_profiler ANY /_profiler/{token}
_webservice_call POST /ws/{webservice}
_webservice_definition GET /ws/{webservice}
_login ANY /
_security_check ANY /security/login_check
_logout ANY /security/logout
_landing ANY /landing
_concurrency ANY /security/concurrency
_overwriteConcurrency ANY /security/overwriteConcurrency
_loading ANY /security/loading
_changeLanguage ANY /changeLanguage
_security ANY /security/{strategy}/{globalStrategy}
_parameter ANY /admin/{strategy}/{globalStrategy}
_status ANY /admin/{strategy}/{globalStrategy}
_csc ANY /admin/{strategy}/{globalStrategy}
_catalogs ANY /catalog/{strategy}/{globalStrategy}
_prizes ANY /admin/{strategy}/{globalStrategy}
_reports ANY /{globalStrategy}/{strategy}
- Sie machte sicher, dass Ihr server kompatibel ist mit Symfony2 Anforderungen? In Ihrem YML-Datei, versuchen Sie es mit route-Namen anstelle von "path" (wenn es nicht funktioniert mit Symfony2.0). Beim ausführen
php app/console router:debug
auf den server kann, finden Sie die route in der Liste? Alle anderen URL-Arbeit auf deinem server? - Bearbeitet die post mit dem Ergebnis der php app/console router:debug
- Was meinst du mit route-Namen anstelle von "path"?
- versuchen
^/(admin|security|landing|reports|catalog)
als Muster - Hi Pazi, es hat nicht funktioniert 🙁
- Hat Ihr server erfüllen alle Anforderungen (D. H. laufen
php app/check.php
)? In Ihremsecurity.yml
Datei, anstatt/security/login_check
versuchen Sie, den Namen der route ein_security_check
.. ich hatte gelesen, der doc wieder zu sehen, wenn es irgendwelche Warnungen über dieses Problem. - Alles sagt OK, mit Ausnahme von "short_open_tag" aber ich bereits geändert, es in der richtigen PHP.ini und sagt immer noch dass. Ich änderte, was Sie sagte, Es wirft ->> InvalidConfigurationException: Ungültige Konfiguration für den Pfad "Sicherheit.firewalls.Preise": Die check_path "_security_check" für die login-Methode "form_login" wird nicht ergänzt durch die firewall-pattern "^/admin|^/security|^/Landung|^/Berichte|^/Katalog".
- Die short_open_tag sagt [[WARNUNG]] Überprüfen, php.ini hat short_open_tag auf off gesetzt ist: SCHEI *** Eingestellt short_open_tag auf off in php.ini ***
Du musst angemeldet sein, um einen Kommentar abzugeben.
hatte das gleiche Problem einmal, in meinem Fall habe ich nicht meinen server gut konfiguriert ist, löse ich es durch die Konfiguration von apache2 mit rewrite-Modul, unter linux soll es durch sometinhg wie dieses sudo a2enmod rewrite, pluss in Ihre Website Website-Konfiguration in die/etc /apache/sites-available/Beispiel.dev solltest du so etwas wie diese
wenn Sie nicht wissen, wie konfigurieren Sie eine lokale Domäne hier ist ein Beispiel http://tutorial.symblog.co.uk/docs/configuration-and-templating.html
aber wenn Sie nicht das Gefühl, wie die Konfiguration einer lokalen Domäne können Sie die Standard-site-Konfigurationsdatei in /etc/apache2/sites-enabled/default und ändern Sie AllowOverride None AllowOverride All