Maison > Questions et réponses > le corps du texte
Lorsque j'utilise un logiciel de site Web, j'ai constaté que le fichier index.php dans le répertoire racine de certains logiciels peut générer plusieurs pages Web différentes, telles que :
localhost/index.php/blog; localhost/index.php/contact.
Comment cette méthode de routage est-elle mise en œuvre ? Merci!
黄舟2017-06-26 10:51:00
Pour localhost/index.php
,访问的文件地址是 localhost/index.php
没错,然后 /blog
, cela peut être compris comme un paramètre,
Comment l'obtenir ? Vérifiez les informations de $_SERVER.
Par exemple, le paramètre '/blog' correspond à la méthode d'index du contrôleur Blog, puis la logique correspondante peut être implémentée en appelant (new Blog())->index().
En continuant, le paramètre '/blog/add' correspond à la méthode add du contrôleur Blog, puis la logique correspondante peut être implémentée en appelant (new Blog())->index().
淡淡烟草味2017-06-26 10:51:00
Pour le serveur, www.xxx.com/index.php/test ne peut reconnaître que www.xxx.com/index.php Ceci est configuré dans Nginx ou Apche, comme la configuration suivante :
.location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.1-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
Quant au test d'information ultérieur, il est reconnu par le code PHP lui-même. Il s'agit en fait d'un paramètre (Quant à la façon dont le code PHP reçoit ce paramètre, il faut voir comment Nginx ou Apache interagit avec PHP.) Quand ceci Après. en obtenant le paramètre "test", vous pouvez faire ce que vous voulez en fonction de ce paramètre. Avec différents paramètres, vous pouvez faire différentes choses et fournir une variété de fonctions. C'est aussi ma compréhension du routage.
滿天的星座2017-06-26 10:51:00
Le format de paramètre suivant s'appelle PATH_INFO, Apache vous le demande par défaut, nginx doit le faire correspondre lui-même.
C'est la même chose que index.php?url=/path/to/xxx. Il utilise simplement un paramètre pour représenter l'itinéraire du projet.