[url rewriting] "404" se transforme tout seul en "html"...

"404" se transforme tout seul en "html"... [url rewriting] - Divers - Programmation

Marsh Posté le 16-03-2008 à 17:28:32    

Yop,

 


"404" a un statut particulier quand on url rewrite :??:

 


RewriteRule ([a-zA-Z0-9_]+)/index\.html ./index.php?page=$1 [L]

 

me donne transforme pomme/index.html   ---> index.php?page=pomme

 


Ca marche bien sauf que quand je fais 404/index.html, il me sort

 

index.php?page = html  


:??:

 


je précise que ça marche avec les autres nombres (403, 200000, ...)

 


quelqu'un a une idée ? :)

 


****************************************************************************************
*    RESOLU

 

yop,

 


j'aimerais faire un trouc du genre :

 

machine-cafe.html?supp=vanille => index.php?page=machine&type=cafe&supp=vanille


Ma règle :

Code :
  1. RewriteRule machine\?(.*)\.html\?(.*) ./index.php?page=machine&type=$1&$2 [L]


Mais ça ne marche pas :(
Je pense que c'est à cause du ? dans

html\?(.*)


parce que ceci marche

Code :
  1. RewriteRule machine-(.*)\.html-(.*) ./index.php?page=machine&type=$1&$2 [L]
 

Ca transforme

machine-cafe.html-supp=vanille => index.php?page=machine&type=cafe&supp=vanille

 


Je suppose que j'échappe mal le "?" mais je sais pas trop comment faire autrement :(
Ou est-ce que je fais une autre connerie :??:

 


Marchi :jap:

Message cité 2 fois
Message édité par art_dupond le 18-03-2008 à 13:33:31

---------------
oui oui
Reply

Marsh Posté le 16-03-2008 à 17:28:32   

Reply

Marsh Posté le 17-03-2008 à 09:24:23    

art_dupond a écrit :


Code :
  1. RewriteRule machine\?(.*)\.html\?(.*) ./index.php?page=machine&type=$1&$2 [L]




 
Juste après machine, tu essayes de chercher un '?' alors que c'est un '-' qui doit y avoir, non ?

Reply

Marsh Posté le 17-03-2008 à 10:38:52    

art_dupond a écrit :

Je suppose que j'échappe mal le "?" mais je sais pas trop comment faire autrement :(


La partie après le ? s'appelle la query string On ne peut pas la matcher dans une RewriteRule. On peut par contre le faire dans une RewriteCond, mais je sais pas si ça sera top.
 
Pourquoi passer par une query string ? Si tu modifiais ton url par :

Code :
  1. machine-cafe/supp/vanille.html


Ce serait beaucoup plus logique [:petrus dei]

Reply

Marsh Posté le 17-03-2008 à 11:39:42    

Bidem a écrit :


 
Juste après machine, tu essayes de chercher un '?' alors que c'est un '-' qui doit y avoir, non ?


 
je voudrais justement pouvoir mettre un "?" ;)
 

FlorentG a écrit :


La partie après le ? s'appelle la query string On ne peut pas la matcher dans une RewriteRule. On peut par contre le faire dans une RewriteCond, mais je sais pas si ça sera top.
 
Pourquoi passer par une query string ? Si tu modifiais ton url par :

Code :
  1. machine-cafe/supp/vanille.html


Ce serait beaucoup plus logique [:petrus dei]


ok merci je vais chercher par là :)
 
En fait je fais comme ça parce que le query string contient un nombre (inconnu) variable de variables (sisi :p) qui ne sont pas importants donc zou, tout à la fin au lieu de faire un truc récursif.


---------------
oui oui
Reply

Marsh Posté le 17-03-2008 à 12:02:43    

Au fait, c'est possible de faire les tests autrement qu'en faisant un .htaccess ?
C'est pas pratique pour tester si un règle marche ou pas :sweat:

  


EDIT: en tout cas ça marche nickel en rajoutant %{QUERY_STRING} dans la chaine transformée :)

 

merci encore :jap:


Message édité par art_dupond le 17-03-2008 à 12:13:26

---------------
oui oui
Reply

Marsh Posté le 18-03-2008 à 13:33:38    

Yop, nouvelle question :)

 


"404" a un statut particulier quand on url rewrite :??:

 


RewriteRule ([a-zA-Z0-9_]+)/index\.html ./index.php?page=$1 [L]

 

me donne transforme pomme/index.html   ---> index.php?page=pomme

 


Ca marche bien sauf que quand je fais 404/index.html, il me sort

 

index.php?page = html  


:??:

 


je précise que ça marche avec les autres nombres (403, 200000, ...)

 


quelqu'un a une idée ? :)


Message édité par art_dupond le 18-03-2008 à 13:33:48

---------------
oui oui
Reply

Marsh Posté le 18-03-2008 à 13:59:03    

il remplace 404 par la valeur de ton ErrorDocument 404, peut-être?[:autobot]


Message édité par skeye le 18-03-2008 à 13:59:28

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 18-03-2008 à 14:41:36    

je sais pas on voit ça comment  
 
 
quand je fais adresse/404/ sans url rewriter, il me dit qu'il ne trouve rien
 
et avec, il me transforme ça en html...
 
Bon du coup là je traite '404' et 'html' comme le même code erreur, mais ça "salit" mon code :o


---------------
oui oui
Reply

Sujets relatifs:

Leave a Replay

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