prb url rewriting côté PHP

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

starmagh
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 14
Inscription: 24 Avr 2005

prb url rewriting côté PHP

Message le Dim Juil 20, 2008 14:27

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: Tout sélectionner
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: Tout sélectionner

   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
:(


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Dim Juil 20, 2008 18:03

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 ?

starmagh
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 14
Inscription: 24 Avr 2005

Message le Dim Juil 20, 2008 18:35

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...


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Dim Juil 20, 2008 19:05

YoyoS a écrit: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:

starmagh
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 14
Inscription: 24 Avr 2005

Message le Lun Juil 21, 2008 0:44

YoyoS a écrit: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.


olivier3249
WRInaute passionné
WRInaute passionné
 
Messages: 1712
Inscription: 22 Oct 2007

Message le Lun Juil 21, 2008 0:55

starmagh a écrit:je me démerderai tout seul tiens.


Bon au revoir alors et à l'année prochain pour ton 14 ème message! ;)

starmagh
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 14
Inscription: 24 Avr 2005

Message le Lun Juil 21, 2008 1:02

olivier3249 a écrit:Bon au revoir alors et à l'année prochain pour ton 14 ème message! ;)
On se connaît ? Quand j'aurais besoin de toi je viendrai poster sur ce qui te sert de blog !


YoyoS
WRInaute accro
WRInaute accro
 
Messages: 3835
Inscription: 14 Sep 2006

Message le Lun Juil 21, 2008 1:24

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

Vap
WRInaute passionné
WRInaute passionné
 
Messages: 1090
Inscription: 17 Juin 2007

Message le Lun Juil 21, 2008 8:26

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!


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

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