prb url rewriting côté PHP

Nouveau WRInaute
Bonjour,
je rencontre un petit problème avec l'url rewriting, en particulier avec la partie php.
le php m'étant assez étranger, il m'est difficile de trouver seul la réponse à mon problème ; je remercie donc d'avance celles et ceux qui se pencheront sur les quelques lignes suivantes:

dans le .htaccess, j'ai ceci:

Code:
RewriteEngine On
RewriteBase /
Options -MultiViews
RewriteRule ^annonces/page([0-9]*)\.htm$ index.php?a=2&b=$1 [L]
RewriteRule ^annonces/categorie([0-9]*)\.htm$ index.php?a=5&b=$1 [L]
...

je veux donc afficher:
monsite.com/annonces/page15.htm par exemple

ça marche mais le code PHP m'oblige à afficher ceci:
monsite.com/index/annonces/page15.htm

et mon soucis c'est que je ne vois pas où faire la modif pour virer ce répertoire /index/ de l'url rewritée.

voici ce que j'ai côté PHP:

Code:
	function formatUrls($string,$entireString)
	{
		$string = stripslashes($string);
		$endUrl = strstr($entireString, ">") ? ">" : "";
		$string = trim($string,"\"");
		$string = trim($string,"'");
		$newUrl = "href=\"";
		if(!stristr($string,$this->configuration_data->index.php."?"))
			return $newUrl.$string."\" ".$endUrl;
		$urlParts = explode(".php?", $string);
		$urlGetVariables = preg_split("/[&]/", $urlParts[1]);
		$newUrl .= $urlParts[0];
		$a=0;
		for($lcv=0;$lcv<count($urlGetVariables);$lcv++)
		{
			$urlGetVariableValues = explode("=", $urlGetVariables[$lcv]);
			if(!$urlGetVariableValues[1])
				$urlGetVariableValues[1] = "0";
				
			switch($urlGetVariableValues[0])
			{
				case "a";
					$a = $urlGetVariableValues[1];
					switch($urlGetVariableValues[1])
					{
						case 2:
							$newUrl .= "/annonces";
						break;
						case 5:
							$newUrl .= "/annonces";
						break;
						case 6:
							$newUrl .= "/annonces"; 
						break;
						case 8:
							$newUrl .= "/details";
						break;
						case 11:
							$newUrl .= "/annonces";
						break;
						case 14:
							$newUrl .= "/imprimer";
						break;
						case 15:
							$newUrl .= "/images";
						break;
						default:
							return "href=\"".$string."\" ".$endUrl;
						break;
					}
				break;
				case "b":
					switch($a)
					{
						case 2:
							$newUrl .= "/page".$urlGetVariableValues[1];
						break;
						case 5:
							$newUrl .= "/categorie".$urlGetVariableValues[1];
						break;
						case 6:
							$newUrl .= "/vendeur".$urlGetVariableValues[1];
						break;
						case 8:
							$newUrl .= "/categorie".$urlGetVariableValues[1];
						break;
						case 11:
							$newUrl .= "/categorie".$urlGetVariableValues[1];
						break;
						case 14:
							$newUrl .= "/annonce".$urlGetVariableValues[1];
						break;
						case 15:
							$newUrl .= "/annonce".$urlGetVariableValues[1];
						break;
					}
				break;
				case "c":
					switch($a)
					{
							case 1:
									$newUrl .= "/1-semaine";
								break;
								case 2:
									$newUrl .= "/2semaines";
								break;
								case 3:
									$newUrl .= "/3semaines";
								break;
								case 4:
									$newUrl .= "/1jour";
								break;
						
					}
				break;
				case "page":
					$newUrl .= "/page".$urlGetVariableValues[1];
				break;
				default:
					return "href=\"".$string."\" ".$endUrl;
				break;
			}
		}
		return $newUrl.".htm\" ".$endUrl;
	}

Quelqu'un aurait-il une idée ?
Encore merci d'avance
:(
 
WRInaute accro
Salut, pourquoi tu n'apprendrais pas le php et ferais toi même la fonction ? Parce que la j'ai l'impression qu'elle fait plein de trucs inutiles pour l'utilisation que tu veux en faire.

Que veux-tu donner en paramètres à la fonction et que veux-tu qu'elle te renvoie ?
 
Nouveau WRInaute
salut Yoyos, et merci pour ta réponse.
je souhaite simplement que la fonction php s'occupe à ma place de réécrire les liens dans mes pages, ceci pour m'éviter d'avoir à éditer x pages...

ça marche déjà avec cette fonction, mais j'ai pour résultat:

monsite.com/index/annonces/page10.htm

et je voudrais

monsite.com/annonces/page10.htm

je ne vois pas où ce code stipule qu'il faille conserver ce repertoire /index/dans l'url.
par ailleurs cette fonction fait pas mal d'autres choses parce qu'elle réécrit d'autres pages (les case a, b et c) mais si j'ai la soluce pour une page je l'ai forcément pour les autres.

le peu que je connais du php ne me permet pas de trouver la solution...
et ce n'est pas faute d'essayer de comprendre ce langage...
 
WRInaute accro
YoyoS a dit:
Que veux-tu donner en paramètres à la fonction et que veux-tu qu'elle te renvoie ?

Et oui j'ai posé une question précise -_- Je comprends pas ce que tu lui donnes et ce que tu veux obtenir, alors montre moi par un exemple, comme ça je refais le processus en lisant la fonction et essaie de faire attention quand on te pose des questions sinon on avancera pas. :roll:

Bon pour résumé, de peur que t'oublie, donne les deux paramètres et le résultat :mrgreen:
 
Nouveau WRInaute
YoyoS a dit:
Et oui j'ai posé une question précise -essaie de faire attention quand on te pose des questions sinon on avancera pas. :roll:

Bon pour résumé, de peur que t'oublie, donne les deux paramètres et le résultat :mrgreen:
Appelle-moi con j'te dirai rien
Voilà 3 ans que je suis inscrit sur ce forum, j'ai pu constater une réelle dégradation dans l'accueil des demandes d'aide...
Dès qu'on a le malheur de pas savoir, mieux vaut s'abstenir de demander conseil car à coup sûr on se fera prendre pour un abruti...
ma question était simple et pour réponse j'ai droit à des va-apprendre-le-php, apprends-à-lire, etc.
pitoyable et pathétique.
je me démerderai tout seul tiens.
 
WRInaute accro
Désolé d'avoir voulu t'aider, bonne nuit.

NB: Qu'est-ce que ça doit être quand il y a une réelle raison de piquer sa crise 8O
 
WRInaute impliqué
starmag,

je parie que le .htaccess est dans le répertoire /index/, d'ou la présence de RewriteBase /, qui enlève /index/ des URL et le rajoute après réécriture.

Sinon, je ne vois pas pourquoi tu t'énerve, Yoyos a pose une question pour comprendre le problème. J'aurais posé la même question d'ailleurs!
 
Discussions similaires
Haut