2017-09-01 1 views
0

J'ai une question sur les URI. Jusqu'à la semaine dernière, je pense que certaines parties de l'URI goin 'after host spécifient toujours le vrai chemin dans le système de fichiers. Mais ensuite, j'ai appris à connaître les fournisseurs de contenu lors du développement d'une application Android et j'ai découvert que l'ID 231 dans l'exemple d'URI ne correspond pas physiquement à un dossier.Les URI PHP ne correspondent pas physiquement au chemin dans le système de fichiers

scheme://example.com/records/231/edit 

Lorsqu'une application PHP utilise URIs comme celui-ci ci-dessus, je suis sûr qu'ils ne disposent pas d'un seul dossier pour chaque enregistrement sur leur serveur. Donc, ma question est de savoir comment réaliser une telle fonctionnalité avec PHP, je n'en ai aucune idée.

Répondre

0

Un serveur Web reçoit une URL et l'interprète d'une manière ou d'une autre. La manière la plus habituelle et la plus canonique est d'avoir un répertoire racine pour chaque domaine et tout ce qui suit le nom de domaine (comme /records/231/edit) est mappé à un fichier dans ce répertoire racine.

Cependant, l'interprétation de cela dépend vraiment du serveur Web (et de la manière dont il est configuré). Les serveurs Web Apache permettent la réécriture d'URL, qui réécrit en interne toute URL/URI vers une autre URL/URI. Presque chaque serveur Web fournit ce genre ou un genre similaire de réécriture. Le plus commun est de tout mettre en correspondance avec certains index.php (sauf pour les URI qui existent réellement) et le index.php se penche sur $_SERVER['SCRIPT_NAME'] ou quelque chose à trouver, quel uri est appelé et gère la requête de manière appropriée. La raison de ce concept est la suivante: Semantic URL