Partage
  • Partager sur Facebook
  • Partager sur Twitter

Url rewriting

une fonction qui la gére... ??

    8 juin 2007 à 9:05:11

    Bonjour, il n'ya pas longtemps j'ai fais une recherche sur le site du zéro, et j'ai copié collé ce post (désolé, je ne me souviens plus du nom de l'auteur) :

    Salut à tous je vient de finir une fonction qui permet l'url rewriting sans le mod_rewrite d'apache je vous la met ici avec la notice d'utilisation. N'hésitez pas à me dire ce qu'il faudrait faire pour l'optimiser merci:
    Code : PHP

    <?php

    function rewriting()

    {

            $fichier_conf = '.rewriterules';

            $page_erreur = '404.php';

            $url = substr_replace($_SERVER['REQUEST_URI'],'',0,1);

            $open = fopen($fichier_conf,"r");

                    while(!feof($open)){

                            $rules = fgets($open,filesize($fichier_conf));

                            $masque = explode('|',$rules);

                            $url_finale = $masque[1];

                            preg_match('`'.$masque[0].'`',$url,$ereg);

                            if($ereg[0]){

                                            $i =0;

                                            $count = count($ereg);

                                            while($i <= $count -1){

                                                    $url_finale = str_replace("$".$i,$ereg[$i],$url_finale);

                                                    $i++;

                                            }

                                            $parse_url = parse_url($url_finale);

                                            //chose bizard de parse_url????

                                            $parse_url = preg_replace('`^(.+)__$`sU','$1',$parse_url);

                                            if(isset($parse_url['query']))

                                            {

                                                            $varget = $parse_url['query'];

                                                            $varget = explode("&",$varget);

                                                            foreach($varget as $varval)

                                                            {

                                                                            $varval = explode("=",$varval);

                                                                            $_GET[$varval[0]] = $varval[1];

                                                            }

                                            }

                                            header("Status: 200 OK");

                                            include($parse_url["path"]);

                                            exit;
                            }

                    }

            include($page_erreur);

    }

    rewriting();

    ?>


    Vous créer ce .htaccess:
    Code : Autre
    ErrorDocument 404 /urlrewriting.php

    Vous créez une page 404.php pour indiquer si la page existe.
    Dans un fichier .rewriterules dans lequel vous mettez vos instrucions de rewriting comme ceci par exmple:
    Code : Autre
    index.html|index.php
    index-([a-z0-9_]+).html|index.php?page=$1
    index-([a-z0-9_]+)-([0-9]+).html|index.php?page=$1&num_page=$2

    vous pouvez reconaitre la syntax de l'url rewriting (sauf qu'il n'y a pas les ^ et $ qui renseigne le début et la fin du masque et que les corespondances sont séparées par un "|").
    Et voila vous rewritez vos url ;)
    Vous pouvez personaliser les noms des différents fichiers suffit de modifier les choses nécessaires
    Edité le 13/08/2006 à 12h24 par NeoZer0

    Comment utiliser cette fonction ? Quand est-ce qu'on l'appel ?
    • Partager sur Facebook
    • Partager sur Twitter

    Url rewriting

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown