M'en sors pas!... :-(

WRInaute impliqué
Bonjour,

J'ai changé de forum et j'aimerais rediriger de manière permanente mes anciennes urls... J'utilise donc le .htaccess et j'y arrive pour toutes les urls qui n'ont pas de paramètre. Les autres, ca donne ça:

Code:
RewriteRule ^modules\.php?name=Forums&viewtopic=([0-9]+)&start=([0-9]+)$ /modules/ZForum/toto-t$1s$2.html [R=301]

Mais ca ne fonctionne pas. J'ai essayé d'échapper les points, les = les ? mais rien n'y fait! :(
Quelqu'un voit-il ce qui ne colle pas?
Merci
 
WRInaute impliqué
Dans la doc ils disent juste que le host n'est pas pris en compte, ce qui est correct dans ma syntaxe. Ils ne parlent pas des variables après ? (du moins je n'ai pas vu)...
 
WRInaute accro
http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule a dit:
The Pattern will initially be matched against the part of the URL after the hostname and port, and before the query string. If you wish to match against the hostname, port, or query string, use a RewriteCond with the %{HTTP_HOST}, %{SERVER_PORT}, or %{QUERY_STRING} variables respectively.

La "query string" c'est ce qu'il y a après le "?" et avant le "#".

scheme:://username:password@host:port/path?query_string#fragment

Jacques.
 
WRInaute accro
Quelque chose comme:

RewriteCond %{QUERY_STRING} ^name=Forums&viewtopic=([0-9]+)&start=([0-9]+)$
RewriteRule ^modules\.php$ /modules/Zforum/toto-t%1s%2.html [R=301]

Jacques.
 
WRInaute impliqué
Dur dur...
J'ai trouvé une combinaison qui donne quelque chose (les autres donnent du 404) mais l'url de redirection est bizarre:

Code:
RewriteCond %{QUERY_STRING} Forums&viewtopic=([0-9]+)&start=([0-9]+)$
RewriteRule  ^.*$ /modules/ZForum/toto-t%1s%2.html [R=301]

donne

Code:
/ZForum/toto-t1266s30.html?name=Forums&viewtopic=1266&start=30
 
WRInaute impliqué
Ca y est, j'ai trouvé : il faut mettre un "?" à la fin de la ligne RewriteRule!
Merci!
 
Haut