Simuler l'URL Rewriting chez Free

Formation

En Semi-présenciel Paris

Prix sur demande

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Description

  • Typologie

    Formation

  • Méthodologie

    En semi-présentiel

  • Lieu

    Paris

Grâce à cette formation vous pourrez acquérir les connaissances nécessaires qui vous permettrons d’ajouter des compétences à votre profil et obtenir de solides aptitude qui vous offriront de nombreuses opportunités professionnelles.

Les sites et dates disponibles

Lieu

Date de début

Paris ((75) Paris)
Voir plan
7 Cité Paradis, 75010

Date de début

Consulter

Questions / Réponses

Ajoutez votre question

Nos conseillers et autres utilisateurs pourront vous répondre

À qui souhaitez-vous addresser votre question?

Saisissez vos coordonnées pour recevoir une réponse

Nous ne publierons que votre nom et votre question

Les Avis

Le programme

Introduction du cours

Comme vous devez le savoir, l'URL Rewriting traditionnel (avec des directives Apache) ne fonctionne pas chez Free.

Je vous propose, dans ce mini-tuto, une solution simple pour faire comme si l'URL Rewriting fonctionnait. C'est relativement simple, mais comme on dit toujours après coup : « Fallait y penser ». ^^

Introduction

Partons du principe que vous avez des URL de ce type :

http://moulesfrites.free.fr/?type=allumettes&pdt=frite

D'après cette URL et ces variables, on peut en déduire que la page demandée va parler de frites fines allongées préparées avec des pommes de terre à frites. Mon but est d'obtenir une URL comme ceci :

http://moulesfrites.free.fr/?/allumettes-frite.html

C'est beaucoup plus joli, vous ne trouvez pas ?

Oui, mais c'est quoi ce point d'interrogation en plein milieu ?

C'est le seul petit défaut de la technique mais c'est aussi là que se situe toute la subtilité. ^^

Analyse de l'URL

En réalité, tout ce qui se trouve après ce point d'interrogation est en quelque sorte le nom d'une variable get : la variable /allumettes-frite.html. L'URL exacte serait :

http://moulesfrites.free.fr/index.php?/allumettes-frite.html

Cela veut donc dire que la page affichée sera la page index.php. Et c'est cette page qui va analyser l'URL de façon à simuler le rewriting. :)

La page d'index

Dans un premier temps, il faut récupérer l'URL (enfin, ce qui se trouve après le point d'interrogation) :

<?php $VariablesURL = $_SERVER['QUERY_STRING']; // Récupération de ce qu'il y a après le ?. if (substr($VariablesURL, -5) == '.html') { // On enlève le .html s'il est présent. $VariablesURL = substr($VariablesURL, 0, -5); } ?>

On teste aussi la variable, via substr, pour savoir si .html est présent (en toute logique, oui). S'il est présent, on l'enlève.

Maintenant, il s'agit de décomposer la chaîne en deux morceaux. Pour cela je vais utiliser explode (ça fonctionne de la même façon que la méthode split() de JavaScript, pour ceux qui connaissent). Cette fonction coupe la chaîne et crée un tableau avec les valeurs. Je vais couper au niveau du /.

<?php $Argument = explode('/', $VariablesURL); ?>
  • $Argument[0] contiendra /.

  • $Argument[1] contiendra allumettes-frite.

C'est bête, tu aurais pu utiliser substr aussi, non ?

Oui, c'est vrai, mais vous pourriez avoir une URL comme ça :

<lien url="http://moulesfrites/?/recettes/moules-vinblanc.html">http://moulesfrites/?/recettes/moules-vinblanc.html</lien>

Dans ce cas, la fonction explode nous permet de couper la chaîne en trois :

  • $Argument[0] contiendra / ;

  • $Argument[1] contiendra recettes ;

  • $Argument[2] contiendra moules-vinblanc.

Mais ça, je ne reviendrai pas dessus.

Après ça, on va couper $Argument[1]. Les points de coupe seront les tirets (-) :

<?php $SubArgument = explode('-', $Argument[1]); ?>

$SubArgument contiendra le tableau avec les différentes parties de $Argument[1].

Il ne vous reste plus qu'à tester $SubArgument[0] (avec des if ou un switch) pour savoir quelle page inclure (require pour un .php et readfile pour un .html) :

<?php switch ($SubArgument[0]) { case 'allumettes': readfile('pages/types/frites_allumettes.html'); break; case 'maison': readfile('pages/types/frites_maison.html'); break; default: require('pages/accueil.php'); } ?> Script complet

Voici un exemple de script :

<?php $VariableURL = $_SERVER['QUERY_STRING']; if (substr($VariableURL, -5) == '.html') { $VariableURL = substr($VariableURL, 0, -5); } $Argument = explode('/', $VariableURL); if ($Argument[1]) { $SubArgument = explode('-', $Argument[1]); switch ($SubArgument[0]) { case 'allumettes': readfile('pages/types/frites_allumettes.html'); break; case 'maison': readfile('pages/types/frites_maison.html'); break; default: require('pages/accueil.php'); } } else { require('pages/accueil.php'); } ?>

Bien entendu, dans vos pages incluses, vous pouvez réutiliser $SubArgument[i] pour exécuter vos scripts. Dans mon exemple, $SubArgument[1] contient frites. Vous pouvez mettre autant de SubArguments que vous le voulez, mais essayez de ne pas vous emmêler les pinceaux. ;)

N'oubliez pas aussi de mettre des messages d'erreur s'il manque des choses. Je ne vous ai donné que le script de base. ;)

  • #
Waouh !

Très heureux de voir que nos cours vous plaisent, déjà 3 pages lues aujourd'hui ! Vous pouvez continuer la lecture de nos cours en devenant un Roomie, un membre de la communauté d'OpenClassrooms. C'est gratuit !

Vous pourrez aussi suivre votre avancement dans le cours, faire les exercices et discuter avec les autres Roomies.

S'inscrire Se connecter
  • Thématiques du cours : PHP Web

Chaque cours est créé par un professeur ou un expert dans le domaine. Il est composé d'une ou plusieurs parties et peut comporter du texte, des images (schéma, illustration) et des vidéos. Chaque partie d'un cours certifiant est ponctuée d'exercices de 2 types : Des quiz corrigés automatiquement Des devoirs libres (exemple : créer un site web avec des consignes précises). Ces devoirs sont évalués par les pairs. Chaque devoir est corrigé 3 fois par 3 autres élèves, dans un processus en double aveugle, selon un barème fixé par le professeur. La note finale est la moyenne des 3 notes reçues sur le devoir. 50% des devoirs corrigés par les pairs obtiennent quasiment les 3 mêmes notes, avec une variance inférieure à 1. La recherche académique montre d'ailleurs que l'évaluation par les pairs peut être aussi précise que celle des professeurs.

Appeler le centre

Avez-vous besoin d'un coach de formation?

Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.

Simuler l'URL Rewriting chez Free

Prix sur demande