Question

On m'a demandé de comprendre le fonctionnement du système Concrete5 pour un employeur, et je ne peux pas trouver quelque chose.

J'ai Concrete5 installé dans un répertoire sur le serveur appelé /realprofessionals. Lorsque le système Concrete5 fait de nouvelles pages, il leur donne leurs propres chemins absolus, par exemple:

http://www.wmcpartners.com/realprofessionals/footer

Cependant, il n'a pas vraiment fait un dossier dans le répertoire /realprofessionals appelé footer. Alors, comment ça marche? Comment http://www.wmcpartners.com/realprofessionals/footer un lien de travail?

Était-ce utile?

La solution

Réponse courte: Toutes les demandes de page sont passe réellement à travers le seul et unique fichier index.php. Contenu de la page est stockée dans la base de données, pas dans les fichiers sur le serveur.

Réponse longue: Concrete5 (et plus de CMS pour que la matière à base de PHP) fonctionnent comme ceci: toutes les demandes sont acheminées via le fichier index.php. Ce routage est appliqué avec certaines règles mod_rewrite dans le fichier .htaccess. Les règles disent que « pour toute demande, ne vont pas vraiment à cette page, mais plutôt aller à index.php et passer le reste du chemin demandé comme paramètres $ _GET ». Ensuite, dans le code index.php (ou un autre code qui est inclus dans le fichier index.php), la page demandée est déterminée en fonction du chemin qui a été mis dans les paramètres $ _GET par Apache (selon la règle mod_rewrite. htaccess), et le contenu approprié est récupéré à partir de la base de données.

Le stockage du contenu dans la base de données, par opposition à des fichiers sur le serveur présente plusieurs avantages. Par exemple, vous pouvez réutiliser le même modèle html - en-tête, pied de page, barre latérale - sur chaque page, et si vous changez le modèle, il sera automatiquement répercuté sur toutes les pages il est utilisé sur. , Il facilite la lecture aléatoire des pages autour et de leur donner tout ce que vous voulez URL aussi (par exemple, pas extension « .php » à la fin, ou / 2010/11 / jour / base / chemins / pour / blog / messages).

L'inconvénient est bien sûr que chaque demande nécessite de nombreuses requêtes de base de données, mais pour la plupart des sites (ceux sans zillions de pages vues), le compromis est bien la peine (et divers types de mise en cache peut aider à réduire l'impact sur les performances) .

Autres conseils

La réponse de la Jordanie est excellente, j'ajouterais que vous ne voyez pas probablement index.php dans l'url parce que vous avez activé URL jolies (type « assez » sur searchbox de concrete5 pour vérifier).

Quoi qu'il en soit, la meilleure façon d'ajouter programmation lien vers des pages internes est:

<a href="<?=$this->url('page-name');?>"> 
    page name 
</a>

Il fonctionne aussi bien sur localhost et en ligne, avec ou sans jolies URL.

(Pour la page nom aller au tableau de bord / plan du site complet / page nom / propriétés / chemins et emplacement page).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top