| 
             linkfr 
		 |  Membre 
             
            Inscrit le : 09/05/2005 
           | 
          
           # Le 07/04/2013 à 11:31 
            
             Hello 
 
Bon alors je me sens tout foireux de poser la question ici (j'ai pas trouvé de catégorie dans le forum pour 'problèmes techniques'). 
 
J'en ai pourtant fait des urlrewriting dans ma jeunesse mais visiblement c'est pas comme le vélo et j'arrive pas a trouver mon cas sur google pourtant j'ai essayé plusieurs requêtes bien 'pensées' mais non... et je lutte depuis deux heures sur une bêtise d'url rewriting. 
 
Rapidement voici ce que je souhaite faire et qui foire a chaque fois..., un truc qui me parait tout bête mais j'y arrive pas... 
 
j'ai un domaine et je souhaite générer des pages et des sous dossiers de cette façon là : 
 
www.domaine.com/fr/fr/villededepart/viledarrivee 
 
sachant que le sous dossier /villededepart/ et le sousous dossier /villedarrivee/ sont généré par deux pages php distinctes et que le .htaccess se trouve dans le second /fr/ 
 
j'ai essayé ca mais ca me redirige vers la page villededepart.php et pas vers la page villedarrivee.php... et ca ne apsse pas les parametres 
 
Options +FollowSymlinks 
RewriteEngine on  
RewriteRule ([a-zA-Z_]+)/([a-zA-Z_]+)/$ villededarrivee.php?villedepart=$1&villearrive=$2 [L] 
RewriteRule ([a-zA-Z_]+)/([a-zA-Z_]+)$ villededarrivee.php?villedepart=$1&villearrive=$2 [L] 
RewriteRule ([a-zA-Z_]+)/$ villededepart.php?villedepart=$1 [L] 
RewriteRule ([a-zA-Z_]+)$ villededepart.php?villedepart=$1 [L] 
 
bien évidemment  
RewriteRule ([a-zA-Z_]+)/([a-zA-Z_]+)/$ villededarrivee.php?villedepart=$1&villearrive=$2 [L] 
RewriteRule ([a-zA-Z_]+)/([a-zA-Z_]+)$ villededarrivee.php?villedepart=$1&villearrive=$2 [L] 
ca marche 
 
et  
RewriteRule ([a-zA-Z_]+)/$ villededepart.php?villedepart=$1 [L] 
RewriteRule ([a-zA-Z_]+)$ villededepart.php?villedepart=$1 [L] 
 
mais les deux cumulé ca ne fonctionne pas... que ce soit l'un qui commence ou l'autre et dans tous les sens 
 
et je dois avoir le cerveaux cramé car je trouve pas la soluce ni sur gg ni en testant toutes les 'solutions' possibles a chaque fois y' un truc qui couille... 
 
donc si l'un de vous à déjà réalisé ce genre d'urlrewriting et à un petit peu de compassion pour moi, ca serait cool de m'aiguiller vers un truc qui fonctionne. Vous aurez ma reconnaissance éternelle   
 
Merci et bon weekend à tous  Pierre ::: Teletoday.com - A la télé ce soir !    | 
        
        
          | 
             tonguide 
		 | Jeremy Modérateur 
             
            Inscrit le : 09/05/2005 
           | 
          
           # Le 07/04/2013 à 12:02 
            
             As-tu essayé de mettre "RewriteBase /" ? (le chemin dépendant d'où tu as mis ton fichier .htaccess)  | 
        
        
          | 
             linkfr 
		 | Pierre Membre 
             
            Inscrit le : 09/05/2005 
           | 
          
           # Le 07/04/2013 à 12:05 
            
             non mais j'essaye de ce pas   
 
mais je ne pensais pas que ca serait nécessaire le htaccess étant dans le ssousous dossier www.domaine.com/fr/fr/  Pierre ::: Teletoday.com - A la télé ce soir !    | 
        
        
          | 
             linkfr 
		 | Pierre Membre 
             
            Inscrit le : 09/05/2005 
           | 
          
           # Le 07/04/2013 à 12:10 
            
             hum ca me dit : 
 
Not Found 
 
The requested URL /villededarrivee.php was not found on this server. 
 
et en mettant RewriteBase /home/xxxxxx/www/test/fr/fr 
ca ne trouve pas le fichier alors qu'il est bien là... 
 
Not Found 
 
The requested URL /home/xxxxxx/www/test/fr/fr/villededarrivee.php was not found on this server. 
 
arghh 
 
(Message édité le 07-04-2013 à 12h18 par linkfr)  Pierre ::: Teletoday.com - A la télé ce soir !    | 
        
        
          | 
             tonguide 
		 | Jeremy Modérateur 
             
            Inscrit le : 09/05/2005 
           | 
          
           # Le 07/04/2013 à 12:10 
            
             Oui mais justement, ça peut éviter de mélanger tes 2 Rewrite. 
 
Tu as aussi la solution de préciser le début avec le signe ^ car du coup, tu ne définis pas le début, donc il relance toujours le second rewrite (depart) qui est valide dans tous les cas.  | 
        
        
          | 
             tonguide 
		 | Jeremy Modérateur 
             
            Inscrit le : 09/05/2005 
           | 
          
           # Le 07/04/2013 à 12:11 
            
              linkfr a dit : 
hum ca me dit : 
 
Not Found 
 
The requested URL /villededarrivee.php was not found on this server. 
Oui parce que tu dois définir le chemin complet à partir de la base pour ton fichier.  | 
        
        
          | 
             linkfr 
		 | Pierre Membre 
             
            Inscrit le : 09/05/2005 
           | 
          
           # Le 07/04/2013 à 12:22 
            
             ah merde j'ai edité au lieu de reposter   
 
bon ben meme avec l'url absolue et le ^ et meme en intervertissant /1/2/ et /1/ rien ne fonctionne, et j'arrive pas atrouver un truc sur le net qui explicaue clairemetn la méthode pour créer des sousdossier et des soussousdossier easy...  Pierre ::: Teletoday.com - A la télé ce soir !    | 
        
        
          | 
             tonguide 
		 | Jeremy Modérateur 
             
            Inscrit le : 09/05/2005 
           | 
          
           # Le 07/04/2013 à 12:28 
            
             Il est où ton fichier "villededarrivee.php" ainsi que ton fichier ".htaccess" et qu'est ce que tu as mis comme "rewritebase" ? 
 
Parce qu'au niveau du code, j'ai aucun doute, donc c'est juste ton chemin qui n'est pas bon.  | 
        
        
          | 
             ultrajoe 
		 | Jérôme Membre 
             
            Inscrit le : 16/07/2008 
           | 
          
           # Le 07/04/2013 à 13:40 
            
             J'ai pas vérifié tes règle de rewriting mais t'es sur de l'orthographe de "villededarrivee.php", c'est pas "villedarrivee.php" plutôt ?  | 
        
        
          | 
             linkfr 
		 | Pierre Membre 
             
            Inscrit le : 09/05/2005 
           | 
          
           # Le 08/04/2013 à 07:30 
            
             Désolé obligation familiale dominicale   
 
alors je reprends, tous mes fichiers villededarrivee.phph (boulettes qu'au final je laisse par fainéantise Ultrajoe) villederetour.php et le htaccess sont dans le sousous rep 'fr', c'est a dire ici www.domaine.com/test/fr/fr/  
soit en url absolue : 
/home/domaine/www/test/fr/fr/ 
 
et au final le htacces que j'ai qui fonctionne pas : 
 
Options +FollowSymlinks 
RewriteEngine on 
RewriteBase /home/domain/www/test/fr/fr 
RewriteRule ^(.+)/(.+)/$ villededarrivee.php?villedepart=$1&villeretour=$2 [L] 
RewriteRule ^(.+)/(.+)$ villededarrivee.php?villedepart=$1&villeretour=$2 [L] 
RewriteRule ^(.+)/$ villededepart.php?villedepart=$1 [L] 
RewriteRule ^(.+)$ villededepart.php?villedepart=$1 [L] 
 
voili voilou, je suis en train de devenir fou, sachant que j'ai intervertit les 4 dernières lignes dans tous les sens, rien y fait   
 
  Pierre ::: Teletoday.com - A la télé ce soir !    | 
        
        
          | 
             cerise 
		 | Gaël Modérateur 
             
            Inscrit le : 31/10/2008 
           | 
          
           # Le 08/04/2013 à 10:37 
            
             ça me semble carrément bizarre de mettre le chemin complet en RewriteBase. 
Normalement, 
 
soit ton fichier htaccess se trouve à la racine du site (donc ici /home/domain/www/ ) alors ton RewriteBase c'est / et tes règles de réécriture  doivent indiquer le chemin complet vers le fichier 
 
soit ton htaccess est dans le dossier  /home/domain/www/test/fr/fr et ton RewriteBase c'est /test/fr/fr/ et là tu n'as pas besoin de mettre le chemin complet dans tes RewriteRule 
 
Pour moi, une règle qui doit fonctionner 
 
c'est le fichier htaccess dans www (à la racine) 
 
et ensuite : 
 
Options +FollowSymlinks 
RewriteEngine on 
RewriteBase / 
 
RewriteRule ^([a-z0-9-{}:]+)$ /test/fr/fr/villededarrivee.php?villedepart=$1&villeretour=$2 [L] 
 
etc etc 
 
(Message édité le 08-04-2013 à 11h23 par cerise)  | 
        
        
          | 
             tonguide 
		 | Jeremy Modérateur 
             
            Inscrit le : 09/05/2005 
           | 
          
           # Le 08/04/2013 à 11:02 
            
             quelque chose comme ça ? 
 
 
RewriteEngine on 
RewriteBase /fr/fr/ 
 
RewriteRule ^(.+)/(.+)/$ /fr/fr/villededarrivee.php?villedepart=$1&villeretour=$2 [L] 
RewriteRule ^(.+)/(.+)$ /fr/fr/$1/$2/ [L,R=301] 
RewriteRule ^(.+)/$ /fr/fr/villededepart.php?villedepart=$1 [L] 
RewriteRule ^(.+)$ /fr/fr/$1/ [L,R=301]  | 
        
        
          | 
             cerise 
		 | Gaël Modérateur 
             
            Inscrit le : 31/10/2008 
           | 
          
           # Le 08/04/2013 à 11:22 
            
             je ne suis pas sûr que ^(.+) puisse marcher avec des dossiers virtuels (sans extension) si ?  | 
        
        
          | 
             tonguide 
		 | Jeremy Modérateur 
             
            Inscrit le : 09/05/2005 
           | 
          
           # Le 08/04/2013 à 11:38 
            
             ".+" = ce que tu veux au moins une fois, donc si. 
 
mais bon, je préfère mettre ([a-z_0-9\-]+) (parce que là, tous les fichiers utiliseront cette règle, mais je reprenais son code ;))  | 
        
        
          | 
             linkfr 
		 | Pierre Membre 
             
            Inscrit le : 09/05/2005 
           | 
          
           # Le 08/04/2013 à 16:06 
            
             bon alors comme je m'en sortais pas, j'ai rererecherché sur google et j'ai trouve, trouvéééé, rewriting pour qu'il revienne 
 
(j'avais aussi un fucking soucis de cache avec FF qui m'aurait fait chercher encore longtemps si j'étais pas passé par un autre navigateur pour tester, bref, chelou comme truc) 
 
bref, voici ma soluce : 
Options +FollowSymlinks 
RewriteEngine on 
RewriteRule fr/([a-zA-Z-]+)/([a-zA-Z-]+)/?$ fr/villededarrivee.php?villedepart=$1&villearrive=$2 [L] 
RewriteRule fr/([a-zA-Z-]+)/?$ fr/villededepart.php?villedepart=$1 [L] 
 
et je place le htaccess dans le 'premier' /fr/ et ca marche nickel avec ou sans / a la fin des urls   
 
voilou 
 
Un grand merci a Tonguide et à Cerise pour leur temps  Pierre ::: Teletoday.com - A la télé ce soir !    | 
        
        
          | 
             dbonin 
		 | David Membre 
             
            Inscrit le : 06/07/2006 
           | 
          
           # Le 08/04/2013 à 16:38 
            
              j'avais aussi un fucking soucis de cache avec FF qui m'aurait fait chercher encore longtemps si j'étais pas passé par un autre navigateur pour tester, bref, chelou comme truc 
 
http://www.redirection-web.net/  
C'est bien pratique dans ce genre de cas.      Évolution Web   | Redirection   | PageRank    |