Maison > Questions et réponses > le corps du texte
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 ;
}
PHPz2017-05-16 13:15:09
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);