[PHP] url rewriting : probleme de recup des paramètres [Résolu]

url rewriting : probleme de recup des paramètres [Résolu] [PHP] - PHP - Programmation

Marsh Posté le 22-02-2004 à 19:45:12    

Bonsoir,
 
J'essaie l'url rewriting.
 
Sur mon serveur perso et sur le serveur OVH, je n'arrive pas à récupérer les paramètres passés à ma page PHP.
 
dans le .htaccess, j'ai :
 

Code :
  1. RewriteEngine on
  2. RewriteRule ^(.*)dar/(.*)/index.html$ $1/dar.php?param=$2 [L]


 
Dans mon fichier dar.php j'ai :
 

Code :
  1. <?php
  2. echo "entree sur la page ".strftime("%H:%M:%S" )."<br>";
  3. echo "parametres GET : ".$_GET['param'];
  4. ?>


 
Théoriquement la traduction d'adresse de  
www.domaine.com/dar/toto/index.html devient
www.domaine.com/dar.php?param=toto
Pourtant le résultat obtenu est :
 

Code :
  1. entree sur la page 19:35:08
  2. parametres GET :


 
Je ne comprends pas ce qui cloche. Elle est où l'erreur ? Merci


Message édité par T509 le 03-03-2004 à 23:53:28
Reply

Marsh Posté le 22-02-2004 à 19:45:12   

Reply

Marsh Posté le 23-02-2004 à 16:12:09    

:bounce:

Reply

Marsh Posté le 23-02-2004 à 16:45:45    

Essaye d'appliquer le temps d'un test la même rewrite rule sur une page avec un phpinfo() et de nous donner le lien, il y a toutes les infos dedans pour voir ce qui foire dans la re-écrite :)
 
Première piste sinon : il y a des caractères spéciaux dans ta variable ? Même avec un urlencode certains font complètement bugger mod_rewrite :(

Reply

Marsh Posté le 23-02-2004 à 17:35:17    

j'ai modifié mon code :  
 

Code :
  1. <?php
  2. echo "entree sur la page ".strftime("%H:%M:%S" )."<br>";
  3. if (isset($_GET['param'])) echo "_GET est affectée<br>";
  4. if ($_GET['param'] == '') echo "_GET est vide<br>";
  5. echo "echo parametres GET : ".$_GET['param']."<br><br><br>";
  6. phpinfo();
  7. ?>


 
Je tape dans la barre d'adresse :
www.dar-leila.com/essai/dar/abcd/def/index.html
la traduction doit être :
www.dar-leila.com/essai/dar.php?param=abcd/def
(ce sont là les adresse dispo en ligne)
 
L'url est bien transformée en www.dar-leila.com/essai/dar.php
mais les paramètres ont disparu
j'obtiens :

Code :
  1. entree sur la page 17:28:34
  2. _GET est vide
  3. echo parametres GET :
  4. ...


 
Il est où le problème ?
Merci à tous
 

Reply

Marsh Posté le 23-02-2004 à 17:57:43    

Je viens d'essayer d'autres écritures de la règle .htaccess, mais là j'ai une erreur 404 ou 500 selon les cas.
 
Je penses donc que l'écriture ci dessus est bonne, mais j'ai toujours la disparition des paramètres à passer au script.
 
Des avis  ?

Reply

Marsh Posté le 23-02-2004 à 18:56:44    

A ne rien y comprendre !!!

Reply

Marsh Posté le 23-02-2004 à 18:58:42    

On te l'as dit : un coup de pninfo(); dans ta page et tu comprendra peut-être mieux ce qui se passe.
Regarde aussi dans tes logs apache.


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 23-02-2004 à 19:05:40    

Mon problème est maintenant chez OVH, et dans le PHPinfo, je ne vois pas ce qui cliche car il n'y a aucune référence à mod_rewrite

Reply

Marsh Posté le 24-02-2004 à 08:59:24    

T509 a écrit :

Mon problème est maintenant chez OVH, et dans le PHPinfo, je ne vois pas ce qui cliche car il n'y a aucune référence à mod_rewrite


 
Ah, php est en CGI là.
 
Essaie comme ceci : http://evolt.org/article//18/22880/

Reply

Marsh Posté le 24-02-2004 à 10:58:01    

Cela ne marche pas plus.
Certain me disent que on peut le voir avec le PHPinfo, s'ils peuvent y jetter un oeil, je n'y vois rien.
 
www.dar-leila.com/essai/dar.php
 
Merci

Reply

Marsh Posté le 24-02-2004 à 10:58:01   

Reply

Marsh Posté le 24-02-2004 à 11:40:30    

Bon et bien je crois que je vais rester sur des url classiques

Reply

Marsh Posté le 24-02-2004 à 18:28:05    

Mince, le tableau PHP Variables est absent de ton phpinfo(), aucune possibilité de voir ce qui merde avec :(
 
Essaye la règle suivante :
 
RewriteEngine On
RewriteBase /essai
 
RewriteRule ^dar/(.*)/index.html$ dar.php?param=$2

Reply

Marsh Posté le 24-02-2004 à 18:40:49    

RewriteRule ^dar/(.*)\/index.html$ dar.php?param=$2  [L]

Reply

Marsh Posté le 24-02-2004 à 19:39:19    

JE vous remercie,
Mais cela ne fonctionne pas.
Vu ma compétence dans les regexp, le silence d'ovh à ce sujet et le temps que je perds, je vais dans un premier temps développer avec des url classiques et m'y pencher plus tard.
 
Toutefois, si l'un d'entre vous a la solution miracle, je suis preneur.
 
Merci pour l'aide.

Reply

Marsh Posté le 25-02-2004 à 00:30:11    

de toutes manieres l'url rewriting n'est interressant que quand on a pas mal d'argument pour ses pages, et quand on a un interet sur l'indexation de son site par les moteurs de recherches

Reply

Marsh Posté le 25-02-2004 à 01:10:48    

Core 666 a écrit :

Essaye la règle suivante :
 
RewriteEngine On
RewriteBase /essai
 
RewriteRule ^dar/(.*)/index.html$ dar.php?param=$2


Oups, j'ai écris n'importe quoi :o  
 
Il fallait bien sur écrire RewriteRule ^dar/(.*)/index.html$ dar.php?param=$1 ;)

Reply

Marsh Posté le 25-02-2004 à 01:19:38    

ah ouais forcément, j'ai meme pas vu l'erreur et j'ai corrigé ave ton erreur aussi :D

Reply

Marsh Posté le 25-02-2004 à 09:04:43    

Merci, j'avais vu cette erreur.
 
Je voulais utiliser cette technique car j'ai constaté que même avec  quelques parametres simple, le référencement est moyen. Par contre avec une adresse en index.html, cela va beaucoup mieux.

Reply

Marsh Posté le 25-02-2004 à 11:56:16    

c'est bien ce qui me semblai l'UR ne fonctionne plus chez OVH.
 
galere.

Reply

Marsh Posté le 26-02-2004 à 11:19:47    

Une autre méthode est peut être d'utiliser  
RewriteRule ^(.*)dar/(.*)/index.html$ ./essai/dar.php
 
Puis de récupérer les paramètres avec $_SERVER['REQUEST_URI']
Qu'en pensez vous ?

Reply

Marsh Posté le 02-03-2004 à 15:37:04    

Eh bien j'avance à tout petits pas.
Je crois que j'ai un peu de mal avec les UR  :pt1cable:  
 
Ma règle de ré-écriture était foireuse
 
maintenant, j'ai ceci :

Code :
  1. RewriteEngine on
  2. RewriteRule ^dar\(.*)\/index.html$ /essai/dar.php?param=$1 [L]


 
Mon paramètre $_GET['param'] n'est plus vide mais ce n'est pas encore ce que je veux
 
pour l'adresse www.monsite.com/chemin/dar/paramètres/index.html
j'obtiens www.monsite.com/essai/dar.php?param=dar.php/paramètres
 
Pas cool  :(  

Reply

Marsh Posté le 02-03-2004 à 19:10:44    

et comme ça :
 
RewriteEngine on  
RewriteRule ^dar/(.*)/index\.html$ /essai/dar.php?param=$1 [L]

Reply

Marsh Posté le 03-03-2004 à 00:29:08    

ca change rien, car le point est optionnel.

Reply

Marsh Posté le 03-03-2004 à 09:30:14    

Pas le temps de tester aujourd'hui, je fais cela ce soir

Reply

Marsh Posté le 03-03-2004 à 23:53:05    

Bon ça y est j'ai trouvé la syntaxe exacte pour mon souci :
 

Code :
  1. RewriteEngine on
  2. RewriteRule ^dar/([^/]+)/([^/]+)\/index.html$ /essai/dar.php?param=$1-$2 [L]


 
Merci à tous pour votre aide

Reply

Marsh Posté le 03-03-2004 à 23:55:08    

Code :
  1. RewriteEngine on
  2. RewriteRule ^dar/([^/]+)/([^/]+)\/index\.html$ /essai/dar.php?param=$1-$2 [L]


 
 
est plus correct ;) (echappement du point)

Reply

Marsh Posté le 03-03-2004 à 23:56:30    

C'est quoi la différence ?

Reply

Marsh Posté le 04-03-2004 à 00:05:34    

la différence est que en expressions régulières, le fait de mettre un point indique que à la place du point, tu attends n'importe quel caractère, y inclus le caractère point :)
 
si tu échappes le point, celà veut dire clairement que tu attends un point, et rien d'autre.
 
sinon, on pourrait appeller ta page comme ceci :
 
dar/salut/pouet/index/html
ou encore
dar/salut/pouet/index@html
 
... ;)


Message édité par skylight le 04-03-2004 à 00:06:21
Reply

Marsh Posté le 04-03-2004 à 08:29:24    

Merci beaucoup !!!

Reply

Marsh Posté le 23-03-2004 à 20:28:54    

l'URL rewriting marche alors avec OVH ?
 
Car moi j'y arrive pas... :(
 
Je teste avec le tuto de webrankinfo qui me dis de faire ca : http://www.webrankinfo.com/analyse [...] ewrite.php
 
mais ca marche pas..donc c'est ke ovh ne fait pas le l'URL rewriting


---------------
/!\ Post powered by Phive-online.com /!\
Reply

Marsh Posté le 24-03-2004 à 08:29:57    

Si cela fonctionne, mais ils ont un module qui est modifié donc il faut respecter la règle suivante.
 

Code :
  1. RewriteEngine on
  2. RewriteRule ^dar/([^/]+)/([^/]+)\/index\.html$ /essai/dar.php?param=$1-$2 [L]


 
Commencer la ré-écriture par un "/" donc ici /essai ...
C'est écrit dans la FAQ OVH


Message édité par T509 le 24-03-2004 à 11:54:38
Reply

Marsh Posté le 24-03-2004 à 11:44:29    

Merci bcp :)


---------------
/!\ Post powered by Phive-online.com /!\
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed