L'urlrewriting par script

L'urlrewriting par script

Messagede Devorg le Sam 12 Avr 2008 19:15

Voici un exemple complétant un article du journal du net sur l'urlrewriting. Cette méthode permet de faciliter le référencement des pages accessibles à l'aide d'url du type index.php?var1=valeur1&var2=valeur2.

C'est une des méthodes d'urlrewriting elle à l'avantage de ne nécessiter aucun paramètrage du serveur apache.

L'exemple fonctionne dans un cas général comme présenté par « le journal du net » sur certains serveurs il n'est pas possible de l'appliquer (Free par exemple).

Pour c’est exemple il nous faut :

- Un fichier index.htm qui contient les liens nous permettant d’appeler la « page1.php » et la « page2.php » avec différents paramètres.

index.htm

Code: Tout sélectionner
<html>
<head>
<title>Test url rewriting</title>

</head>

<body>
<div align="center">
<p>
<a href="reptest/messages/1_789.php" target="_blank">Page 1 avec le param&egrave;tre 789 </a>
<br>
<a href="reptest/messages/1_12.php" target="_blank">Page 1 avec le param&egrave;tre 12</a>
</p>

<p>
</a> <a href="reptest/messages/2_bonjour.php" target="_blank">Page 2 avec le paramètre Bonjour</a>
</p>
</div>
</body>
</html>


- On créé un répertoire (le nom n’a pas d’importance) par exemple : reptest

- On y met un fichier .htaccess contenant :

.htaccess


Code: Tout sélectionner
<FilesMatch "^messages$">
ForceType application/x-httpd-php
</FilesMatch>




« messages » étant le nom du fichier qui contiendra le code PHP permettant de traiter l’URL et d’en déduire les paramètres.


- On arrive au fichier principal, celui qui va transformer notre url en paramètres ( voir l’article du journal du net) .

Dans cet exemple le fichier s’appelle « messages », le nom n’a pas d’importance, il faut simplement qu’il corresponde à celui qui est dans le fichier .htaccess.


messages

Code: Tout sélectionner
<?
// Dans cet exemple on considère que l'on aura toujours 2 paramètres.
// Il faut améliorer le code si l'on souhaite passer un nombre variable d'arguments

$tab=explode("/",$REQUEST_URI);
$id=$tab[count($tab)-1];
$vars=explode("_",$id);
$voir=$vars[0];
$param=strtok($vars[1], ".");
include("lire.php");
?>


- On a ensuite le fichier PHP qui va exécuter le traitement correspondant à nos paramètres, ici il s’appelle lire.php.

lire.php

Code: Tout sélectionner
<?
// on effectue ici les traitements correspondant aux paramètres
// ici les paramètres sont accessibles par les variables $voir et $param (ces variables sont visibles ici car lire.php est inclus dans le fichier messages ou elle sont définit.)

switch ($voir) {

case "1" :
include("page1.php");
break;

case "2" :
include("page2.php");
break;

default :
break;
}
?>


et enfin les fichiers page1.ph et page2.php qui seront affichés suivant les paramètres passés



page1.php

Code: Tout sélectionner
<html>
<head>
<title>Page 1</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<h1>C'est la page 1 avec le paramètre n° <? echo $param?></h1>
</body>
</html>


page2.php

Code: Tout sélectionner
<html>
<head>
<title>Page 2</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<h1>C'est la page 2 avec le paramètre <? echo $param?></h1>
</body>
</html>


Ce qui nous donne l’arborescence suivante :

Index.htm

/reptest
.htaccess
messages
lire.php
page1.php
page2.php


Il existe un autre méthode d'url rewriting, de utiliser les fonctions du module mod_rewrite, et les expressions régulières.Ceci sera l'objet d'un autre article.Voici la partie de la documentation Apache sur l' url rewriting avec le module mod_rewrite (version anglaise) et ici mod_rewrite en version française

Voici quelques liens afin d'approfondir l'étude de l'url rewriting :

http://www.searchtools.com/robots/goodurls.html

http://evolt.org/article/Making_clean_U ... index.html

http://www.alistapart.com/stories/succeed/

http://www.linktree.info/urlrewriting.php

http://www.engelschall.com/pw/apache/rewriteguide/

http://www.oreillynet.com/faqs/list.csp ... 0Rewriting

http://www.webkreator.com/php/configura ... urity.html

VoilĂ  ceci devrait permettre au moteur de recherche de mieux parcourir le site.
Avatar de l’utilisateur
Devorg
Administrateur
Administrateur
 
Messages: 297
Inscription: Lun 7 Avr 2008 14:07

Retourner vers Languages du web

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron