2 votes

Utiliser les titres des pages/articles dans l'URL

Je utilise pour afficher des pages créées sur le site web comme http://www.monadresseweb.com/bids/display.php?id=id mais je veux afficher des pages avec le titre de la page dans l'URL, comme ceci http://www.monadresseweb.com/bids/titre-de-l'offre/ ou bids/titre-de-l'offre.html

Merci d'avance

0voto

mithunsatheesh Points 7623

Regardez l'URL de cette page.

vous pouvez créer votre URL comme

http://www.monadresseweb.com/encheres/1234/titre-de-l-enchere/

où 1234 est l'identifiant de l'article que vous transmettez et le paramètre suivant vous aide à construire des URL conviviaux pour le référencement.

Aussi si vous voulez comme

http://www.monadresseweb.com/encheres/titre-de-l-enchere/

Ensuite, essayez de rendre les titres des articles uniques dans la base de données et vous pouvez interroger via ce champ pour récupérer des données. La première option serait meilleure. Si vous voulez quand même adopter la deuxième approche, essayez de le faire avec cet article après avoir rendu les titres uniques.

Pour faire la même chose, vous devrez écrire une règle de réécriture d'URL avec l'aide du module mod_rewrite d'Apache

0voto

Cela sera vraiment utile, non seulement pour cet exemple mais aussi pour tout autre élément relatif aux URL propres.

http://www.generateit.net/mod-rewrite/

0voto

shawndreck Points 1229

Voici une fonction que vous pourriez utiliser pour créer les URLs

/\*\*
     \* Créer un titre d'URL
     \*
     \* Prend une chaîne "title" en entrée et crée une
     \* chaîne d'URL conviviale avec soit un tiret
     \* soit un trait de soulignement comme séparateur de mots.
     \*
     \* @access  public
     \* @param   string  la chaîne
     \* @param   string  le séparateur : tiret ou trait de soulignement
     \* @return  string
     \*/
function urlTitle($str, $separator = 'trait\_de\_soulignement', $lowercase = TRUE)
    {
        if ($separator == 'tiret')
        {
            $search     = '\_';
            $replace    = '-';
        }
        else
        {
            $search     = '-';
            $replace    = '\_';
        }

        $trans = array(
                '&\\#\\d+?;'              => '',
                '&\\S+?;'                => '',
                '\\s+'                   => $replace,
                '\[^a-z0-9\\-\\.\_\]'        => '',
                $replace.'+'            => $replace,
                $replace.'$'            => $replace,
                '^'.$replace            => $replace,
                '\\.+$'                  => ''
        );

        $str = strip\_tags($str);

        foreach ($trans as $key => $val)
        {
            $str = preg\_replace("#".$key."#i", $val, $str);
        }

        if ($lowercase === TRUE)
        {
            $str = strtolower($str);
        }

        return trim(rtrim(stripslashes($str),$replace));
    }

Ceci est très similaire au code utilisé dans une fonction aide d'URL dans le framework codeigniter.

Comment utiliser?

$title = "Belle façon de le dire";

echo urlTitle($title);//output: "belle\_façon\_de\_le\_dire" 

Le reste de la personnalisation vous revient mais c'est certainement un bon début

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X