URL Rewriting et redirections

  • Auteur de la discussion Auteur de la discussion leo
  • Date de début Date de début
Nouveau WRInaute
Salut tout le monde,


J'ai décidé il y a peu de réécrire à la volée les urls de certaines des pages de mon site. Le problème est que les anciennes urls d'accès, enregistrées par google ne redirigent pas vers les urls que j'ai réécrites. Ce n'est pas faute d'avoir essayé mais j'ai un gros problème de boucle infinie.
Voilà une de mes règle de réécriture (je met le titre du produit dans les liens vers celui-ci):

Code:
^Article([0-9]+)-Titre-article.php$ articles.php?prod=$1 [L]

Et voici comment j'ai essayé de faire ma redirection:

Dans chaque page réécrite j'inclu un fichier chargé de rediriger le visiteur. Voilà en gros mon code:


Code:
$page = getenv($PHP_SELF); //Recupération du nom du script qui est en train de s'executer
$query = getenv("QUERY_STRING"); // Récupération des paramètres passés au script
if(!empty($query)) //Si il n'y a pas de paramètres, on ne redirige pas
{
  switch($page)
  {
   case "articles.php":
 		{
		  if(!empty($prod) && is_numeric($prod))
		  {
			$titre= recup_titre(); //Je récupère le titre de mon article
			$url = make_url("Article",$prod,$titre); //Je construis l'url de redirection( url réécrite)
			header("Location: $url");
		  }
		break;
		}
  }
}

Le problème, c'est que lorsque j'appelle par exemple la page articles.php?prod=15, mon script me redirige bien vers Article15_Titre.php, mais une fois que la page Article15_Titre.php est appelée, la variable $page ne prend pas la valeur Article15_Titre.php mais toujours articles.php. Résultat: J'ai une redirection infinie vers Article15_Titre.php. J'aimerai donc savoir comment connaître le nom du fichier chargé tel qu'il apparaît dans la barre du navigateur et non en interne.
Ca devrait ensuite me permettre de faire correctement les redirections.

Merci beaucoup à ceux qui essayeront de m'aider

@+
 
Nouveau WRInaute
Désolé, mais en fait j'ai encore une question, cette fois au sujet d'une règle de réécriture. En fait sur mon forum, au lieu d'avoir une url du type message.php?msg=1250&page=3 j'aimerais avoir une url du type:
Message1250_Page5_TitreMessage.php
Sachant qu'un titre ne contient pas le caractère "_" j'ai essayé les règles suivantes, mais sans succès:
Code:
^Message([0-9]+)_Page([0-9]+)_(.*)\.php$ message.php?msg=$1&page=$2 [L]

^Message([0-9]+)_Page([0-9]+)_([^_]+)\.php$ message.php?msg=$1&page=$2 [L]

En fait la règle marche mais n'a pas l'effet escompté à savoir que j'ai une redirection vers le début du message (page 0). Mon autre règle de redirection pour un sujet sans numéro de page marche, mais pas celle là.
Est ce quelqu'un a une solution?

Merci d'avance
 
Discussions similaires
Haut