php - Phalcon ne peut accéder qu'au chemin /, et les autres chemins utilisent indexAction. Que se passe-t-il?
phpcn_u1582
phpcn_u1582 2017-05-16 13:13:09
0
2
736

En suivant les étapes ci-dessous, un problème étrange s'est produit.
J'ai créé un projet, test, en utilisant l'outil phalcon-devtools-2.0.13.
Ensuite, il fonctionne avec succès !
Après cela, j'ai modifié le contenu suivant :

< /p>

Pas de problème :

< /p>

Mais :

< /p>

J'ai ajouté un itinéraire et quelque chose s'est mal passé :

< /p>

Excusez-moi, que se passe-t-il ? Je suis actuellement php5.6 phalcon2.0 configuration nginx :

serveur { écoutez 80 ; test du nom du serveur ; racine /Utilisateurs/ryugou/test/public ; index index.php index.html index.htm; jeu de caractères utf-8 ; emplacement/{ try_files $uri $uri/ /index.php; } emplacement ~ \.php$ { try_files $uri =404; fastcgi_pass 127.0.0.1:9000 ; fastcgi_index /index.php; inclure fastcgi_params ; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } emplacement ~ /\.ht { nier tout ; }
phpcn_u1582
phpcn_u1582

répondre à tous(2)
刘奇

Code d'enregistrement Post DI

PHPzhong

Le problème environnemental n'est pas un bug de la version php ou de la version Phalcon, mais un problème de configuration nginx !
Piège !
Les informations URI par défaut de Phalcon sont obtenues à partir de $_GET['_url'], ou elles peuvent être définies sur $_SERER['REQUEST_URI'].
L'utilisation de ces deux méthodes différentes pour obtenir nécessite des configurations nginx différentes ! ! (Pour plus de détails, veuillez consulter la documentation Phalcon Configuration de Phalcon nginx)
Cela doit être configuré !
Utilisez $_GET['_url'] (par défaut) :

emplacement / {

    try_files $uri $uri/ /index.php?_url=$uri&$args;

}
Utilisez $_SERVER['REQUEST_URI'], configuration nginx :

emplacement / {

    try_files $uri $uri/ /index.php;

}
Si vous souhaitez utiliser $_SERVER['REQUEST_URI'] normalement, peu importe si nginx est configuré, vous devez quand même le modifier dans le code php :

utilisez PhalconMvcRouter;
$router->setUriSource(Router::URI_SOURCE_SERVER_REQUEST_URI);

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal