SAVOIRS · HTACCESS

Comment configurer les URLs de recherche-moteur amical?

Dernière mise à jour le 2019-02-03

Voici une façon d'avoir une URL conviviale pour moteur de recherche comme http://www.example.com/blog/2007/jan dans le navigateur, être transformé côté serveur en http://www.example.com/blog/index.php?year=2007&month=jan sans changer ce qui est vu dans la barre d'adresse du navigateur.

Ceci peut être effectué en utilisant la directive mod rewrite dans votre fichier .htaccess. Pour effectuer cela, votre fichier .htaccess doit avoir les lignes suivantes à l'intérieur avec une directive par ligne:

RéécrireEngine
Règle de réécriture ^blog/([0-9]+)/([a-z]+)$ /blog/index.php?an=1&mois=2$ [nc]


EXPLANATION:

RéécrireEngine
La première ligne s'assurera que votre moteur de réécriture est allumé.

Règle de réécriture ^blog/([0-9]+)/([a-z]+)$ /blog/index.php?an=1&mois=2$ [nc]
La deuxième ligne est expliquée comme suit:
^blog/ - s'assure qu'il regardera le début de la chaîne en commençant par blog

([0-9]+) - recherche une série de nombres de 0-9. Le + à la fin assure qu'il correspondra à des nombres répétés une ou plusieurs fois, c'est-à-dire le cas de 2007.

([a-z]+)$ - recherche une entrée en lettres minuscules. Le + à la fin assure qu'il correspondra à des lettres répétées une ou plusieurs fois, c'est-à-dire le cas de l'arbre. Dans cet exemple, le cas n'aura pas d'importance en raison de ce que nous avons ajouté à la fin de la règle. Le signe dollar à la fin dit simplement à la directive de chercher la fin de la ligne.

/blog/index.php?year=1$&month=2$ - c'est ce que le site Web va traduire en où 1$ est la première entrée reçue, dans ce cas 2007 et 2$ est la deuxième entrée reçue, dans ce cas jan.

- Ce qui signifie "pas de cas" ou "pas de cas sensible". En ayant ceci à la fin de la règle, il n'importe pas dans quel cas l'entrée est dans. Par exemple, http://www.example.com/blog/2007/JaN réagira comme http://www.example.com/blog/2007/jan.

Cela peut être facilement étendu pour inclure de nombreux types d'entrées en termes plus généraux ou spécifiques en utilisant des expressions régulières (regex/regexp). Pour plus d'informations sur le régex et sur la façon de l'utiliser, veuillez consulter le site suivant:
http://www.regular-expressions.info/tutorial.html

De plus, des informations plus complètes sur la directive mod rewrite peuvent être trouvées à l'adresse suivante:
http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

← Tous les articles de la base de connaissances

Dites-nous ce qui doit rester debout.

Une courte conversation avec un ingénieur. Pas de guillemet, pas de queue de rappel.