2009-02-11 10 views
0

J'ai testé les éléments suivants Mod Rewrite sur MAMP, mais pour une raison quelconque, il ne parvient LAMP. Une idée de ce que je fais mal?Mod Rewrite Question - paramètres de transmission aux nouveaux noms de paramètres

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^newParamA=(.*)&newParamB=([0-9]*)$ 
RewriteRule ^newfolder/newsubfolder/$ oldfolder/oldsubfolder\.php?oldParamC=%1\&oldParamD=%2 [QSA,L] 

L'idée est qu'une requête telle que

http://domain.com/newfolder/newsubfolder/?newParamA=query&newParamB=111 

tracera avec succès:

http://domain.com/oldfolder/oldsubfolder/?oldParamC=query&oldParamD=111 
+0

Utilisez-vous la même configuration? – Gumbo

Répondre

0

En réponse au commentaire de Gumbo (Utilisez-vous la même config)

Oui - dernière version d'Apache, avec mod_rewrite activé - Il semble qu'il n'aime pas le RewriteCond - si je commente cela, Au moins, la redirection de chemin fonctionne. Lorsque je décommente le RewriteCond, j'obtiens l'erreur "Not found".

+0

Oui - Tout fonctionne. Si je commente rewritecond, newfolder/newsubfolder map à oldfolder/oldsubfolder J'ai juste besoin de mapper les paramètres, mais il ne semble pas aimer rewriteCond –

0

Actuellement, je ne sais pas ce qui pourrait provoquer ce problème. Mais vous pouvez essayer un de ces:

RewriteCond %{QUERY_STRING} ^newParamA=([^&]*)&newParamB=([0-9]*)$ 
RewriteRule ^newfolder/newsubfolder/$ oldfolder/oldsubfolder.php?oldParamC=%1&oldParamD=%2 [QSA,L] 

RewriteCond %{QUERY_STRING} (^|&)newParamA=([^&]*)&newParamB=([0-9]*)($|&) 
RewriteRule ^newfolder/newsubfolder/$ oldfolder/oldsubfolder.php?oldParamC=%2&oldParamD=%3 [QSA,L] 

Ou encore:

RewriteCond %{QUERY_STRING} (^|([^&]*&)*)newParamA=([^&]*)(.*) 
RewriteCond %3&%1&%4 ^([^&]*)(&[^&]*)*&newParamB=([0-9]*) 
RewriteRule ^newfolder/newsubfolder/$ oldfolder/oldsubfolder.php?oldParamC=%1&oldParamD=%3 [QSA,L]