Vous n'êtes pas identifié(e).

  • Contributions :
  • Vos boîtes de messages privés sont vides.

🟣 Développement de mon propre CMS : réécriture d'URL et pb de template


#1 2019-04-28 18:09:50

Mention Kysban
🥉 Grade : Scout

AuxiliaireStratège
Inscription : 2016-06-03
Messages : 455
Likes : 6

Audit et Analyse
Rédaction
Scraping
Développement PHP

Développement de mon propre CMS : réécriture d'URL et pb de template

Hello,

Je suis en train de coder mon propre CMS et, ayant un tout petit niveau en PHP, je viens faire appel à votre aide.

En gros, le CMS est constitué de quatre type de template :
- une page d'accueil : index.php
- des pages catégorie : categorie.php
- des pages fiche produit : produit.php
- une page recherche : recherche.php

Mon problème concerne l'écriture de l'URL des fichiers categorie.php et produit.php.

En effet, mes URLs de base avaient cette forme :

http://monsite.com/produit.php?p=description-du-produit
http://monsite.com/categorie.php?c=categorie-du-produit

Avec la réécriture d'URL, je suis parvenu à obtenir des URLs de cette forme :

http://monsite.com/description-du-produit
http://monsite.com/categorie-du-produit

Voici la réécriture d'URL dans le fichier .htaccess :

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^[-a-z0-9]+$ produit.php?p=$0 [L]
RewriteRule ^[-a-z0-9]+$ categorie.php?c=$0 [L]

Problème : toutes mes pages catégories passent en tant que page produit.

Si j'inverse les deux dernières lignes du fichier .htacess, c'est l'inverse : toutes mes pages produit passent en tant que page categorie.

J'en ai donc déduit que je devais fusionner les fichiers produit.php et categorie.php en un seul fichier page.php contenant les deux templates, puis en interrogeant la base de données, je choisis le bon template.

Je pourrais effectivement faire comme ça, puisque ça fonctionne.



Mais j'aimerais comprendre comment font les "vrais" CMS lorsqu'ils exploitent séparément chaque fichier template. Est-ce que ça se joue dans la réécriture d'URL ? Utilisent-ils une page intermédiaire avant d'afficher le bon template ? Ils font autrement ?

Merci pour votre aide. smile

0
J'aime ❤️

🔴 Hors ligne

#2 2019-04-28 21:11:35

Mention OncleShu
🥈 Grade : Soldier

Membre du CercleOfficierIngénieur web250likesConsomateur de LiensMembre HospitalierPhilantrope
Inscription : 2018-03-09
Messages : 648
Likes : 354

Développement PHP
intégration Html Css
Adminstration Serveur
Data Base Admin

Re : Développement de mon propre CMS : réécriture d'URL et pb de template

effectivement la structure de tes urls est la meme pour tes produits et catégories donc difficile de les distinguer dans ton htacces.
Tu peux par exemple ajouter p- devant les url de toutes tes pages produits et c- devant toutes les urls de tes catégories cela te permettra effectivement de les distinguer dans ton htaccess.
Si les structures d'url sont les mêmes et que rien ne permet de les distinguer cela depend des CMS mais ils ont en principe des systèmes de routing permettant de gérer les routes. Si tu veux avoir la meme structure d'url que tu veux coder toi meme tu as un système simple (mais pas optimal) c'est par exemple de commencer à regarder si l'url correspond à une catégorie, si on trouve pas alors on regarde si c'est un produit (dans le code php directement)
Dans le cas ou tu fais ton propre cms je te conseille d'avoir des stuctures d'url diffrentes pour catégories et produits c'est plus simple. Attention quand meme avec CMS home made à toutes les failles de sécurité qu'il faudra que tu gères, en fonction de ce que tu envisages de faire avec ce site. Si c'est pour un petit site ca va, si c'est pour de plus grandes ambitions cela me semble dangereux si tu n'es pas exérimenté en dev

0
J'aime ❤️

🔴 Hors ligne

#3 2019-04-28 22:25:35

Mention Kysban
🥉 Grade : Scout

AuxiliaireStratège
Inscription : 2016-06-03
Messages : 455
Likes : 6

Audit et Analyse
Rédaction
Scraping
Développement PHP

Re : Développement de mon propre CMS : réécriture d'URL et pb de template

Merci pour ta réponse ! smile

OncleShu a écrit :

Tu peux par exemple ajouter p- devant les url de toutes tes pages produits et c- devant toutes les urls de tes catégories cela te permettra effectivement de les distinguer dans ton htaccess.

Ce que j'avais fait initialement, c'est une URL avec le répertoire /produit/ pour les fiches produit et /categorie/ pour les pages categorie. Sur le plan SEO, je ne trouve vraiment pas ça terrible, mais je vais faire avec, tant pis. Ce sera plus simple que de centraliser produit.php et categorie.php dans une seule page.

Pour la solution du système de routing, je n'arrive pas à me figurer ce que ça représente concrètement...

OncleShu a écrit :

Si c'est pour un petit site ca va, si c'est pour de plus grandes ambitions cela me semble dangereux si tu n'es pas exérimenté en dev

En fait, je souhaite tester l'automatisation d'un petit site d'affiliation qui se mettrait à jour tout seul sur la base d'un flux catalogue provenant d'un programme d'affiliation. On va voir si ça marche.

Dernière modification par Kysban (2019-04-28 22:26:39)

0
J'aime ❤️

🔴 Hors ligne

#4 2019-04-29 06:06:47

Mention OncleShu
🥈 Grade : Soldier

Membre du CercleOfficierIngénieur web250likesConsomateur de LiensMembre HospitalierPhilantrope
Inscription : 2018-03-09
Messages : 648
Likes : 354

Développement PHP
intégration Html Css
Adminstration Serveur
Data Base Admin

Re : Développement de mon propre CMS : réécriture d'URL et pb de template

Kysban a écrit :

Merci pour ta réponse ! smile
Pour la solution du système de routing, je n'arrive pas à me figurer ce que ça représente concrètement...

Si tu veux avoir une idée plus précise tu peux regarder comment cela fonctionne sur les framework php les plus connus :

https://symfony.com/doc/current/routing.html
https://laravel.com/docs/5.8/routing

une autre ressource qui part de 0 et qui peut t'aider à comprendre :

https://www.grafikart.fr/tutoriels/router-628

0
J'aime ❤️

🔴 Hors ligne

Pied de page des forums