Jan Posté 23 Novembre 2005 Posté 23 Novembre 2005 Bonjour, Je cherche à faire une redirection 301 de toutes mes URLs du style -http://www.monsite.com/page.php?parametre=valeur vers -http://www.monsite.com/page.php ("page" dans ces urls est une variable, j'ai plusieurs pages pour lesquelles je veux appliquer cette redirection) J'écris: RewriteRule ^(.*)?parametre=(.*)$ http://www.monsite.com/$1 [R=301,L] ... et ça ne marche pas. Merci d'avance
Dan Posté 23 Novembre 2005 Posté 23 Novembre 2005 Une question pour clarifier, mais je ne répondrai plus ce soir car il se fait tard Tu veux simplement enlever le paramètre de l'expresssion non réécrite ? Le fichier peut être page.php ou avoir un autre nom ?
Jan Posté 23 Novembre 2005 Auteur Posté 23 Novembre 2005 Oui, c'est bien ça, je veux enlever le ?parametre=valeur page.php n'est pas une page unique. Je veux le faire pour les pages toto.php, tata.php, etc...
Compte supprimé Posté 24 Novembre 2005 Posté 24 Novembre 2005 Une question pour clarifier, mais je ne répondrai plus ce soir car il se fait tard (je suis insomniaque ) Je crois (Dan confirmera demain ) que tu ne pas traiter la valeur du query string par .htaccess Le plus simple, puisque tu garde tes pages, c'est de traiter la redirection via php en tête de celles-ci, en testant le $_GET['parametre'] du genre <?phpif (!empty($_GET['parametre'])){header ('HTTP/1.1 301 Moved Permanently');header("Location: http://www.domain.tld".$_SERVER['PHP_SELF']);exit();}?>
Dan Posté 24 Novembre 2005 Posté 24 Novembre 2005 Je crois (Dan confirmera demain ) que tu ne pas traiter la valeur du query string par .htaccess Non, je ne confirme pas On peut traiter le QUERY_STRING dans les expressions conditionnelles, par exemple: RewriteEngine OnRewriteCond %{QUERY_STRING} !^$RewriteRule (.*) $1? [L] Si le QUERY_STRING n'est pas vide, on réécrit le fichier vers lui-même, mais en enlevant le QUERY_STRING (la raison du ? utilisé seul en fin de règle, assez peu connu et peu documenté, raison pour laquelle tu l'ignorais) Tu peux facilement éditer cette règle pour le cas où le QUERY_STRING doit avoir une valeur pré-définie, au lieu de tester la chaîne non vide
Jan Posté 24 Novembre 2005 Auteur Posté 24 Novembre 2005 Merci pour vos réponses, je savais que la nuit portait conseil Je vais tester ça ce soir.
Jan Posté 24 Novembre 2005 Auteur Posté 24 Novembre 2005 Hum, je réalise que je n'ai pas assez expliqué mon besoin Je ne veux pas rediriger toutes les urls qui ont un query string, mais seulement celles dont la première variable est "parametre". J'ai d'autre urls avec variables. Si ces variables sont autre chose que "parametre", elles ne doivent pas être redirigées.
Dan Posté 25 Novembre 2005 Posté 25 Novembre 2005 C'est encore plus simple ! RewriteEngine OnRewriteCond %{QUERY_STRING} parametreRewriteRule (.*) $1? [L]
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant