Créer un compte
Connexion

Structuration d'un site

Pour créer et répondre aux sujets, vous devez être connecté.
Pages: 1
Auteur Message
azerty
04/09/2011 à 12:33:42
Plus tu pédales moins fort et moins tu vas plus vite ! azerty
Membre
Bonjour à tous,

J'ai fait un site géré par l'index.php via un fichier de config.

Index.php
        <div id="header">                      
                <?php include ("header/header.html"); ?>               
        </div> 
                       
        <div id="menu_horizontal">             
                <ul id ="menu">                
                <?php include ("menu/menu.html"); ?>
                </ul>
        </div>
       
        <div id="mid">                 
                <div id="droit">                               
                        <?php include ("search/recherche.html"); ?>                    
                </div>                                         
               
                <div id="main">                        
                        <?php include ('<bold>main_inc/main_inc.php</bold>'); ?>                       
                </div>
        </div>         
       
        <div id="break"></div>         
       
        <div id="footer">                              
                <?php include ('footer/footer.html'); ?>               
        </div>   
Fichier de config !
main_inc.php
<?php
$page = (!empty($_GET['page'])) ? htmlentities($_GET['page']) : '00';
$array_ = array(
//    Num              Liens    
        '00' =>  'pages/home/home.html',         // par défaut
        '01' =>  'pages/securite/securite.html',
        '02' =>  'pages/developpement/developpement.html',
        ...
        ...
        '100' => 'contact/contact.php',
        '110' => 'sitemap/sitemap.html',
        );
if(!array_key_exists($page, $array_)) include('/erreur/erreur404.html');
elseif(!is_file($array_[$page])) include('/erreur/erreur404.html');
else  
include($array_[$page]);
?>
Seul le numéro de page s'affiche dans la barre d'adresse (00, 01, 02,...), or je voudrais que seul le nom du fichier consulté ainsi que son répertoire soit visible, un peu comme sur ce site.

Le problème est que je voudrais que le menu reste opérationnel tout le temps.

Actuellement, c'est ce qui de passe, sauf l'affichage dans la barre d'adresse qui n'est pas ce que je souhaiterais !
.
http://127.0.0.1/Site%20Exemple/?page=02

Merci de votre aide.

Cordialement.
Azerty


Cordialement
Azerty

Image
Spitfire 95
04/09/2011 à 16:54:07
Spitfire 95
Membre
Pourquoi appeler tes pages de cette façon alors ?
L'idéal serait de revoir tout le système de pagination du site (donc toute l'organisation).
Sinon pour ce que tu cherche la solution est l'url rewriting.

azerty
05/09/2011 à 06:15:33
Plus tu pédales moins fort et moins tu vas plus vite ! azerty
Membre
Si j'ai fait comme ça, c'est surtout parce que j'avais un gros problème avec le menu.
Supposons qu'à partir de la page d'accueil (par défaut) j'aille sur une autre page, j'avais un include pour le menu, mais le fichier était introuvable.
Idem si, toujours à partir de l'accueil, je cliquais dans le menu sur la page d'accueil.

Si la solution est "rewriting", j'aimerai savoir comment faire ?

Cordialement
Azerty

Image
Spitfire 95
05/09/2011 à 15:23:23
Spitfire 95
Membre
Comment ça introuvable ? Tu veux dire en changeant de répertoire tu n'arrivais plus à importer tes menu ? Il fallait précéder le fichier de ../ autant de fois qu'il y a de répertoires entre ton répertoire courant et ta racine. Ou définir ton répertoire d'importation (set_include_path).
L'URL Rewriting se fait dans les fichiers .htaccess. Il nécessite que l'hebergeur autorise l'utilisation de htaccess (AllowOveride) et ait activé le mod_rewrite.

Pour le mettre en oeuvre, il faut mettre ça dans ton .htaccess :
RewriteEngine on
RewriteRule /pages/home/home.html /Site%20Exemple/?page=00
RewriteRule /pages/securite/securite.html /Site%20Exemple/?page=01
 
Etc. La première adresse correspond à l'url de la barre d'adresse, la seconde celle que Apache doit mettre en remplacement. C'est totalement transparent pour l'utilisateur (l'adresse 1 reste dans la barre d'adresse, il n'y a pas de redirection, juste qu'Apache retourne le contenu de l'adresse 2).
Pour que l'utilisateur voit ces liens il faut bien sûr que tu transforme tous les liens sur ton site dans l'url textuelle (sans ?page=XX). L'utilisation de cette technique te permet aussi d'améliorer ton référencement, car les moteurs de recherche aiment pas trop les paramètres d'url.
J'espère avoir été assez clair dans mes explications sinon n'hésite pas à poster tes questions ou ton .htaccess si celui-ci ne fonctionne pas.

Pages: 1