Rechercher : dans
Par :

URL Rewriting et Redirection 301

Dernière réponse le 9 jun 2009 à 04:00:49 f123b, le 8 jun 2009 à 00:25:26 
 Signaler ce message aux modérateurs

Bonsoir, j'ai un problème de redirection 301 dans le htaccess:
j'ai des urls de cette forme: search.php?keyword=$1&categorie=$2&page=$3&plusmoins=$4
j'utilise la règle suivante dans le htaccess:

RewriteEngine On
RewriteRule (.*)-(.*)-(.*)-(.*)\.html$ /search.php?keyword=$1&categorie=$2&page=$3&plusmoins=$4 [L]


pas de problème les url sont bien réécrites,
par contre ces données proviennent d'un formulaire qui utilise la méthode get et qui appelle le fichier search.php.
Comment faire sans utiliser de header location ou de javascript, donc avec le htaccess pour avoir une redirection 301 quand on soumet le formulaire?

j'ai essayer des règles de ce style:

RedirectPermanent /search.php?keyword=(.*)&categorie=(.*)&page=(.*)&plusmoins=(.*) /$1-$2-$3-$4\.html
mais ca ne fonctionne pas (boucle infini).

peut être en utilisant RewriteCond %{QUERY_STRING} ... mais j'arrive pas à formuler la syntaxe.

Configuration: Windows Vista Internet Explorer 7.0

Meilleures réponses pour « URL Rewriting et Redirection 301 » dans :
PHP - Nettoyer une chaîne de caractères VoirVoici une fonction en PHP qui peut être assez pratique, surtout quand on fait de l'URL Rewriting. Cette fonction permet de transformer les caractères de n'importe quelle chaîne de caractères en chaîne non accentuée, en enlevant les caractères...
Supprimer les accents avec PHP VoirPour un tas de raisons, il est parfois utile de convertir un texte accentué en un texte sans accents. Voici une fonction permettant de transformer très simplement la quasi-totalité des accents en leur équivalent non-accentués : function...
Télécharger URL File Editor VoirPour l’exécution de certains fichiers interactifs, il est nécessaire de se connecter à Internet. Ces fichiers sont redirigés directement à un lien Internet prédéfini par l’éditeur du fichier. URL File Editor est comme son nom...
URL VoirQu'est-ce qu'une URL? Une URL (Uniform Resource Locator) est un format de nommage universel pour désigner une ressource sur Internet. Il s'agit d'une chaîne de caractères ASCII imprimables qui se décompose en cinq parties : Le nom du...
Attaques par manipulation d'URL VoirIntroduction aux URL L'URL (Uniform Resource Locator) d'une application web est le vecteur permettant d'indiquer la ressource demandée. Il s'agit d'une chaîne de caractères ASCII imprimables qui se décompose en cinq parties : Le nom du...

1

A.Nonymous, le 8 jun 2009 à 01:20:07

Logique que cela fasse une boucle infinie, chacune de tes règles s'inversant mutuellement.
Une solution simple serait que
"RewriteRule (.*)-(.*)-(.*)-(.*)\.html$ /search.php?keyword=$1&categorie=$2&page=$3&plusmoins=$4 [L]"
devienne
"RewriteRule (.*)-(.*)-(.*)-(.*)\.html$ /search.php?do=access&keyword=$1&categorie=$2&page=$3&plusmoins=$4 [L] "

où "do=access" ou n'importe quelle assignation de valeur empêche l'autre règle d'agir.

Répondre à A.Nonymous

2

f123b, le 9 jun 2009 à 02:16:06

Bonsoir et merci d'avoir répondu mais j'ai essayé et ca ne marche pas, je ne comprend pas bien pourquoi rajouter une variable. Ce que je cherche a faire c'est une redirection permanente des anciennes URL vers les URL rewrité.
Donc des url:
search.php?keyword=$1&categorie=$2&page=$3&plusmoins=$4
j'obtient les URL:
$1-$2-$3-$4\.html
avec la règle:
RewriteRule (.*)-(.*)-(.*)-(.*)\.html$ /search.php?keyword=$1&categorie=$2&page=$3&plusmoins=$4 [L]

Ca ca marche, maintenant je voudrais écrire une règle qui me fais une redirection 301 des URL:
search.php?keyword=$1&categorie=$2&page=$3&plusmoins=$4
vers les URL rewrité:
$1-$2-$3-$4\.html.

Par exemple si je tape "lcd" dans mon formulaire de recherche, ca me génère l'URL:
search.php?keyword=lcd&categorie=$2&page=$3&plusmoins=$4
je la rewrite sous la forme:
lcd-$2-$3-$4.html

Comment effectuer une redirection 301 de l'url qui vient du formulaire vers l'url rewrité:
lcd-$2-$3-$4.html??

Peut-on mettre ces 2 règles dans le même .htacess?? Ou est ce qu'il y a une autre méthode sans javascript ou header location??

Répondre à f123b

3

 f123b, le 9 jun 2009 à 04:00:49

J'avais fais une erreur, ca fonctionne très bien le fait de rajouter une variable.
Encore Merci...

Répondre à f123b
Collection CommentÇaMarche.net