Bonjour,
Curieusement, il est question souvent ici du mode multiview d'Apache, mais je n'ai pas vu son emploi mis en application pour Free.fr et autres hébergeurs qui désactivent le mode rewrite... Je rappelle donc la technique du multiview pour simuler l'url rewriting chez Free (pardon pour ceux qui connaissent d'enfoncer cette porte ouverte ).
Apache permet par l'option multiview de spécifier un fichier sans son extension et ainsi de l'utiliser, s'il s'agit d'un script PHP codé à cet effet, comme une sorte de pseudo-répertoire. Par exemple, je peux écrire cette url :
http://www.monsite.com/pseudorep/unfichier/option1/option2
En fait, j'aurai à la racine de mon site un script nommé pseudorep.php qui va décortiquer le reste de l'url et faire une redirection sur http://www.monsite.com/unfichier.php?option1&option2
pseudorep.php sera donc écrit ainsi :
Cette explication donnée, je me pose une question : pour faire la redirection, j'ai vu plusieurs codes renvoyées : 200, 301, 302... Je suppose que le 302 est à éviter (?), mais vaut-il mieux un 301 ou un 200 ?
Curieusement, il est question souvent ici du mode multiview d'Apache, mais je n'ai pas vu son emploi mis en application pour Free.fr et autres hébergeurs qui désactivent le mode rewrite... Je rappelle donc la technique du multiview pour simuler l'url rewriting chez Free (pardon pour ceux qui connaissent d'enfoncer cette porte ouverte ).
Apache permet par l'option multiview de spécifier un fichier sans son extension et ainsi de l'utiliser, s'il s'agit d'un script PHP codé à cet effet, comme une sorte de pseudo-répertoire. Par exemple, je peux écrire cette url :
http://www.monsite.com/pseudorep/unfichier/option1/option2
En fait, j'aurai à la racine de mon site un script nommé pseudorep.php qui va décortiquer le reste de l'url et faire une redirection sur http://www.monsite.com/unfichier.php?option1&option2
pseudorep.php sera donc écrit ainsi :
Code:
<?PHP
$url = $_SERVER['PATH_INFO']; // On récupère l'URL ayant appelé le script
$urlparts = explode("/", $url); // On découpe cette url selon ses différents composants
$urlfinale="http://www.monsite.com/".$urlparts[1]."?".$urlparts[2]."&".$urlparts[3]; // On réassemble selon les règles voulues
header("HTTP/1.0 200 OK"); // Faut-il un 200 ou un 301 ???
header('Location: '.$urlfinale); // On redirige sur l'url reformée
?>
Cette explication donnée, je me pose une question : pour faire la redirection, j'ai vu plusieurs codes renvoyées : 200, 301, 302... Je suppose que le 302 est à éviter (?), mais vaut-il mieux un 301 ou un 200 ?