Redirections conditionelles

Nouveau WRInaute
Bonjour,

J'ai 2 problèmes de redirection dans dans l'htaccess qui va sembler tout bete pour beaucoup...

1)Je souhaite faire une redirection permanente d'une page (index.php) avec l'ensemble de ses paramètres vers une nouvelle page (historique-billet-avion.php) seulement SI un des paramètres (&histo) est présent.
J'ai fais une double condition dans htaccess... mais ca ne prend pas en compte ma deuxième condition ?

RewriteCond %{REQUEST_URI} index.php [NC]
RewriteCond %{QUERY_STRING} &histo=
RewriteRule .* /historique-billet-avion.php [L,R=301]

2)J'ai une autre redirectino... Mais je sais meme pas par quelle bout l'attaquer...aujoud'hui j'ai une adresse type: index.php?vol=par_mrs&pass=200

J'aimerai, si le parametre $pass a une longueur de 3 et que le parametre vol a un longeur de 7... fusioner le parametre vol et pass en &vol=par_mrs_200

Quelqu'un aurai une idée pour ces 2 problemes ?

Baptiste
 
Nouveau WRInaute
J'y ai pensé en PHP...

Mais je prefererais autant le faire dans le HTaccess je pense que ca charge moins le seveur si ca va directement au bon endroit... non ?

Baptiste
 
Nouveau WRInaute
ok...

J'suis quand même septique qu'un code comme ci-dessous, soit aussi performant qu'une redirection dans le htacess... dans ce cas, toutes les inclusions et déclaration de classe qui sont en dessous de ce code sont réalisés...

if (isset($_GET['pass'])&& isset($_GET['vol'])){
//redirection pour faire une union
$aT=explode('&',$_SERVER['QUERY_STRING']);
$extra_url='';
foreach($aT as $param){
if(stripos($param, 'vol=')!==false && stripos($param, 'pass=')!==false{
$extra_url.="&$param";
}
}
header("Status: 301 Moved Permanently", false, 301);
header("Location: index.php?vol=".$_GET['vol'].'_'.$_GET['pass'].$extra_url);
}

Au dela de ca, j'aimerai savoir comment on peut faire de facon fiable ce type d'operation dans le htaccess ;)

Baptiste
 
WRInaute accro
1° dans un htaccess, dans TOUS (oui oui TOUS) les requests, Apache dois le parser.
2° si tu nous pond du code douteux comme ça, c'est clair :lol:
 
Nouveau WRInaute
spout a dit:
1° dans un htaccess, dans TOUS (oui oui TOUS) les requests, Apache dois le parser.
2° si tu nous pond du code douteux comme ça, c'est clair :lol:

J'suis capable de bien pire! :D

C'est pas trop mon metier le Php... Mais la j'etais plutot content de moi... au point de ne pas avoir trop honte de le poster ici!
Qu'esqu'il a de pas beau mon bout de code ?!

Baptiste
 
Nouveau WRInaute
spout a dit:
Il y a parse_url() et http_build_query() pr faire ça en plus propre ;)

Effectivement, ca a l'aire un "poil" plus carré. C'est terrible avec le php... il y a des fonctions pour tout faire!

Merci pour le conseil!

Baptiste.
 
Discussions similaires
Haut