Rediriger expression finale d'URL en 302

topinambour1 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
topinambour1 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Comment rediriger une fin d'URL du type ...?lang=fr en
http=//monsite.org/$1 [R=302,L]
dans le .htaccess

le modele etant sur spip en URL propre:
le principe
redirger les adresses /#URL_SITE/#URL__ARTICLE?lang=fr en /#URL_SITE/#URL__ARTICLE

car j'ai des problèmes avec google

Merci pour les reponses
A voir également:

7 réponses

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Salut,

Essaie avec ceci :
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/(.+)\?lang=fr$
RewriteRule ^(.+)$ http://example.com/%1 [L,R=302]

La pensée mène le monde.
0
topinambour1 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour
merci pour votre reponse
cependant le serveur repond 200
j' ai passé %1 en $1 et pareil
parcontre pas d'error 500
voir ci-dessous:
192.168.0.18 - - [17/Sep/2011:11:15:02 +0200] "GET /En-chiffre?lang=fr HTTP/1.1" 200 37387 "-" "Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.2.22) Gecko/20110902 Firefox/3.6.22 GTB7.1"

Une idée
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Essaie avec QUERY_STRING.
0
topinambour1 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
essayé avec /$0 /$1 /%1
pareil 200

ci-joint :

###
# URLs "propres", "propres2", "libres", "arbo"

RewriteRule ^[^\.]+(\.html)?$ spip.php [QSA,E=url_propre:$0,L]

# Fin URLs "propres" et "propres2"
###

pour mon cas en URL_propre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
topinambour1 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
UP
Bonjour
je relance le sujet
merci
0
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
QUERY_STRING contient juste ce qui suit le caractère « ? ».
Il faut donc adapter le pattern dans la directive RewriteCond.

Par exemple :
RewriteCond %{QUERY_STRING} lang=fr
Cette ligne signifie « Si "lang=fr" se trouve dans la chaine QUERY_STRING, donc après "?" ».

La valeur des parenthèses créées dans les conditions (RewriteCond) sont accessibles via %N.
$N permet d'accéder à la valeur des parenthèses créées dans le RewriteRule correspondant.
0
topinambour1 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour

je reviens sur ce problème
j'ai beaucoup cherché et essayé mais le problème n'est pas simple.
Pour preuve , vous-même commentça marche êtes concerné.
En effet, prenez cette page où j'écris et rajoutez au final de l'url en barre d'adresse du navigateur : ?lang=fr et vous aurez aussi la page acceptée avec un code 200 et affichée.
Attention là!!, il va falloir être gentil avec gg et marcher sur la pointe des orteils aussi!!

Plus sérieusement, je me demande si cette impossibilité à écrire cette redirection n'est pas dûe au code employé pour écrire les pages.
Je continue à chercher...
nota: il y a des sites où ?lang=fr marche à mon sens avec une reécriture immédiate sur l'article.
0