Bonjour,
Je suis en train de m'arracher le peu de cheveux qui me restent !!
J'ai hésité à poster ça sur le forum apache, désolé s'il fallait le placer là bas.
Je suis plutôt débutant en PHP et j'ai refait mon site perso et je souhaitais utiliser la réécriture d'url.
C'est quelque chose que je découvre sur internet car pas vu pendant mes cours.
J'ai compris le mécanisme basique avec les expressions régulières (j'ai fait des essais sur un dossier test) mais je ne trouve pas d'exemple pour mon cas car je n'utilise pas de BDD (pas besoin).
Voilà la structure de mon site :
Dans mon index, je fais des "require_once" de mes sections.
Dans la section "référence_clients", j'ai des liens qui pointent sur un fichier 'client.php' qui affichera dynamiquement le contenu du client visé :
Ci-dessous, la liste de mes clients sur ma page "reference_client.php" :
ci-dessous, mon fichier "client.php", le contenu de chaque client se trouve dans le dossier distant "clients" :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <a href="pages_php/clients.php?cust=client1">Client1</a> <a href="pages_php/clients.php?cust=client2">Client2</a>
Je teste si le nom du client existe bien dans mon dossier "clients" avant de charger le contenu.
Du coup dans mon url j'ai ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 <?php $customer = ''; $dir = '../clients/'; $file_list = scandir($dir); $file_list_clean = array_slice($file_list, 2); if (isset($_REQUEST['cust']) && $_REQUEST['cust'] != '' ){ $customer = $_REQUEST['cust'].'.php'; if (in_array($customer,$file_list_clean )){ $customer_ok = $customer; $customer_include = '../clients/'.$customer_ok; }else{ header('Location: http://localhost/jackmiles/pages_php/erreur404.php'); } }else{ header('Location: http://localhost/jackmiles/pages_php/erreur404.php'); } ?> <!DOCTYPE html> <html lang="fr" class="nojs"> <?php require_once("../pages_php/head_dist.php") ?> <body> <!-- pre loder --> <!--<div id="preloader"> <div id="status"> </div><!-- /status --> <!--</div>--> <?php require_once("../pages_php/navbar_dist.php") ?> <section id="clients"> <?php require_once($customer_include) ?> </section> <?php require_once("../pages_php/footer_dist.php") ?> </body> </html>
http://localhost/Jackmiles/pages_php/clients.php?cust=client1
et je souhaiterai avoir ça :
http://localhost/Jackmiles/clients/client1
Autre point, le fichier htaccess doit bien se trouver dans le répertoire "pages_php" pour traiter la réécriture ou doit-il être à la racine (ou peu importe du moment qu'on met le bon chemin) ?
Merci d'avance pour vos retours.
Jack
Partager