Bonjour !

Je viens solliciter votre aide pour un problème de re-écriture d'URL.

J'ai un site avec une seul page gérant plusieurs contenus : ma page index.php affiche tous les articles, mais aussi seulements les articles d'une certaine categorie, ou enfin, un seul article.

J'aimerais avoir ce genre d'URL :

www.mon-site.com/ (accueil, affichant tous ... )
www.mon-site.com/category/humour/ (affiche seulement les films de la categorie choisie)
www.mon-site.com/article/asterix-et-obelix-mission-cleopatre (affiche le film choisi )

Certe, ce n'est pas optimisé mais c'est à la demande de ce "cher" client ...

Pourriez vous m'aider à établir les règles de mon htacces ?

3 réponses


RedaElkhayat
Réponse acceptée

Voila un petit code a faire,
Exemple de lien : monsite.com/index.php/le-reste-de-mon-lien-separer-les-elements-avec-une-slash

<?php
    $query = isset($_SERVER'PATH_INFO']) ? $_SERVER'PATH_INFO'] : false;
    $params = explode('/', trim($query, '/'));
    $request = array();
    $request'type'] = (isset($params[0])) ? $params[0] : '';
    $request'elem'] = (isset($params[1])) ? $params[1] : '';

    if(empty($request'type'])){
        // accueil, affichant tous ...
        /*
            $request'type'] est vide
        */
    }
    elseif($request'type'] == 'category'){
        if(!empty($request'elem'])){
            // affiche seulement les films de la categorie choisie
            /*
                www.mon-site.com/index.php/category/humour
                $request'type'] = 'category';
                $request'elem'] = 'humour';
            */
        }
    }
    elseif($request'type'] == 'article'){
        if(!empty($request'elem'])){
            // affiche le film choisi
            /*
                www.mon-site.com/index.php/article/asterix-et-obelix-mission-cleopatre
                $request'type'] = 'article';
                $request'elem'] = 'asterix-et-obelix-mission-cleopatre';
            */
        }
    }
?>

Et si tu veux de ne pas afficher le index.php dans l'url, utiliser un fichier htaccess avec le code suivant

RewriteEngin On
RewriteRule (.*) index.php/$1 [L]

Merci beaucoup !