Redirection d'une URL avec paramètres à gauche

WRInaute accro
Bonjour

J'ai besoin de faire des redirections de pages via .htaccess (par PHP c'est pas jouable) :

index.php?Idioma=FR --> la racine du site
ou
/empresa_EN.php?Idioma=EN -->/index.php?pg=empresa_EN&Idioma=EN
/empresa_ES.php?Idioma=ES -->/index.php?pg=empresa_ES&Idioma=ES

Ce qui me pose des soucis est la présence de paramètres dans la partie de gauche; j'ai lu des choses sur {QUERY STRING} mais j'y ai pas compris grand chose. SI quelqu'un peut m'aider ?...
 
WRInaute impliqué
Je vais essayer de repondre avant webmasterlamogere :wink:

Pour parser ce qui suit le ? il faut utiliser QUERY_STRING. On récupère les parties entre () par %1, %2, etc, au lieu de $1, $2.

Pour ton cas on peut commencer par essayer ça:

Code:
RewriteCond %{QUERY_STRING} ^Idioma=FR$
RewriteRule index.php(.*) /? [R=301,L]

Le ? sert à enlever tout ce qui suit le ? dans l'URL de départ.

Pour ton deuxième exemple :

Code:
RewriteCond %{QUERY_STRING} ^Idioma=EN$
RewriteRule empresa_EN.php(.*) /index.php?pg=empresa_EN&Idioma=EN [R=301,L]
 
WRInaute accro
Impec :) Merci :)

Une autre question tant que j'y suis: pour qu'un RewriteCond s'applique à plusieurs règles, ya un moyen ?
 
WRInaute passionné
je ne peux pas m'empecher de proposer autre chose : :wink:
Code:
RewriteEngine on
RewriteCond %{QUERY_STRING} ^Idioma=FR$
RewriteRule ^index\.php$ /? [R=301,L]
RewriteCond %{QUERY_STRING} ^Idioma=(EN|ES)$
RewriteRule ^empresa_(EN|ES)\.php$ /index.php?pg=empresa_$1&Idioma=%1 [R=301,L]
 
Nouveau WRInaute
Bonjour,

Je récupère ce post plutôt que d'en créer un nouveau.

Pour une migration Oxatis -> Prestashop, j'ai besoin de rediriger certaines pages vers la home.

En appliquant ce qui est dit dans les post plus haut, si je veux rediriger http://www.mondomaine.com/PBSCCatalog.asp?CatID=1972626 vers http://www.mondomaine.com, je devrais écrire dans le htaccess le code ci-dessous :
Code:
RewriteCond %{QUERY_STRING} ^CatID=1972626$
RewriteRule PBSCCatalog.asp(.*) /index.php [R=301,L]

Correct ??

En tout cas, ce code ne fonctionne pas :(, une idée ??

Merci d'avance.
 
WRInaute discret
Code:
RewriteCond %{QUERY_STRING} ^CatID=1972626$
RewriteRule ^PBSCCatalog.asp$ http://www.domain.com [R=301,L]

ou, sur une page index ("ext" = php? asp?)

Code:
RewriteCond %{QUERY_STRING} ^CatID=1972626$
RewriteRule ^PBSCCatalog.asp$ index.ext [R=301,L]
 
Nouveau WRInaute
Merci Giustino pour la réponse rapide

Cependant cela ne fonctionne pas. En me rendant sur la page http://www.mondomaine.com/PBSCCatalog.asp?CatID=1972626 j'obtiens une erreur 404 quelle que soit la méthode employée.
:(
 
WRInaute discret
Etrange...
As-tu bien placé ces 2 lignes le plus haut possible?
Le mieux, vu que tu utilises prestashop, est de placer les 2 lignes juste après "RewriteEngine on" (ou après "RewriteBase" si il est présent).

En cas de problème persistant, affiche ici le code de ton htaccess
 
Nouveau WRInaute
Giustino a dit:
Etrange...
As-tu bien placé ces 2 lignes le plus haut possible?
Le mieux, vu que tu utilises prestashop, est de placer les 2 lignes juste après "RewriteEngine on" (ou après "RewriteBase" si il est présent).

En cas de problème persistant, affiche ici le code de ton htaccess

Ok C'est bon, MERCI !! il fallait placer le code juste après "RewriteEngine on"...J'espère que le htaccess ne va pas se régénérer tout seul car du coup les redirections sont dans la partie "Prestashop will keep automatically the code outside this comment when .htaccess will be generated again".

:wink:
 
Discussions similaires
Haut