IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

URL Rewriting sans BDD


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Mars 2016
    Messages : 9
    Points : 10
    Points
    10
    Par défaut URL Rewriting sans BDD
    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 :
    Nom : 2017-03-03_130911.jpg
Affichages : 91
Taille : 23,2 Ko
    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" :
    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>
    ci-dessous, mon fichier "client.php", le contenu de chaque client se trouve dans le dossier distant "clients" :
    Je teste si le nom du client existe bien dans mon dossier "clients" avant de charger le contenu.
    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">&nbsp;</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>
    Du coup dans mon url j'ai ça :
    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

  2. #2
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Si mes souvenirs sont bons, tu dois écrire tes URL selon le format final. C'est le htaccess qui s'occupera de les convertir en http://localhost/Jackmiles/pages_php/clients.php?cust=client1
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Mars 2016
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Citation Envoyé par badaze Voir le message
    Si mes souvenirs sont bons, tu dois écrire tes URL selon le format final. C'est le htaccess qui s'occupera de les convertir en http://localhost/Jackmiles/pages_php/clients.php?cust=client1
    Hello Badaze,
    Oui ça j'ai compris car j'ai fait des petits tests simple dans un dossier test..
    Mon soucis est triple :
    1- Peut-on gérer un url rewriting sans passer par une BDD
    2- Où doit-on placer le htaccess qui va traiter la réécriture (pour moi si les fichiers sont dans pages_php, je le mettrai là)
    3- Quelle est la forme du regex à utiliser ?

    Voilà ce que je pensais faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    #htacess dans pages_php
     
    Options +FollowSymlinks
    RewriteEngine on
    RewriteRule ^clients/([0-9a-zA-A\_-]+)$  clients.php?cust=$1 [L]

  4. #4
    Membre émérite
    Avatar de badaze
    Homme Profil pro
    Chef de projets info
    Inscrit en
    Septembre 2002
    Messages
    1 412
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets info
    Secteur : Transports

    Informations forums :
    Inscription : Septembre 2002
    Messages : 1 412
    Points : 2 522
    Points
    2 522
    Par défaut
    Il n'y a aucun lien entre htaccess et la BDD. htaccess est traité par le serveur apache.

    Où le placer ? Je ne suis pas spécialiste de la question car une fois qu'il a fonctionné je ne m'en suis plus soucié. Sur mon site il est à la racine.

    Si je regarde mon htaccess j'ai RewriteBase / en dessous de RewriteEngine on
    Cela ne sert à rien d'optimiser quelque chose qui ne fonctionne pas.

    Mon site : www.emmella.fr

    Je recherche le manuel de l'Olivetti Logos 80B.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Mars 2016
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Oui il n'y a pas de lien mais dans les vidéos que j'ai vu, il est utilisé un champ url pour éviter les urls dupliquées (à 6"20 sur la vidéo)

    Bon, je vais continuer à fouiner..merci encore pour tes réponses

  6. #6
    Membre à l'essai
    Homme Profil pro
    Webdesigner
    Inscrit en
    Mars 2016
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Mars 2016
    Messages : 9
    Points : 10
    Points
    10
    Par défaut
    Bon j'y suis arrivé !! j'avais oublié le "+" après mes crochets grrrrr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteRule ^clients/([0-9a-zA-Z\_]+)$  pages_php/clients.php?cust=$1 [NC,L]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. URL rewriting sans nouvelle URL
    Par harkrisz dans le forum Apache
    Réponses: 3
    Dernier message: 18/03/2013, 21h53
  2. URL rewriting sans identifiant
    Par redah75 dans le forum Apache
    Réponses: 8
    Dernier message: 31/01/2013, 23h26
  3. Url rewriting sans nombre oO
    Par vita83 dans le forum Langage
    Réponses: 2
    Dernier message: 25/05/2010, 21h26
  4. Url rewriting sans paramètres avec base de données
    Par accion mutante dans le forum Apache
    Réponses: 1
    Dernier message: 24/04/2009, 13h23
  5. [URL Rewriting] Sans slash final dans l'URL
    Par yanice dans le forum Apache
    Réponses: 2
    Dernier message: 26/10/2007, 19h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo