Accents dans regex htaccess

Par ToinouPHP, il y a 5 ans


Bonjour à tous, comment accepter les accents dans une réécriture d'URL de ce style la :

RewriteRule ^page-([a-zA-Z0-9_\-\%]+)

4 réponses

ToinouPHP, il y a 5 ans

Donc ce que je peux faire par exemple, c´est remplacer les é par des e avant de soumettre le GET a la base de donnée ?

Balsakup, il y a 5 ans

Salut,

Le mieux c'est de ne pas mettre d'accent dans les URL, c'est une mauvaise pratique

Balsakup, il y a 5 ans

Oui, le mieux est de supprimer tous les accents ou caractères spéciaux. Il doit exister des libs qui font ça, par exemple sur Laravel, on utilise Str::slug pour convertir des chaînes de caractères en slug Je suis un texte avec des caractères spéciaux devient je-suis-un-texte-avec-des-caracteres-speciaux

Florian Journeau, il y a 5 ans

Salut Toinou, si tu n'utilises pas de framework, cette fonction marche très bien pour slugifier des chaines de caractères :

function slugify($string, $delimiter = '-'){ $oldLocale = setlocale(LC_ALL, '0'); setlocale(LC_ALL, 'en_US.UTF-8'); $slug = iconv('UTF-8', 'ASCII//TRANSLIT', $string); $slug = preg_replace("/[^a-zA-Z0-9\/_|+ -]/", '', $slug); $slug = strtolower($slug); $slug = preg_replace("/[\/_|+ -]+/", $delimiter, $slug); $slug = trim($slug, $delimiter); setlocale(LC_ALL, $oldLocale); return $slug; }