redirection avec htaccess, possible ?

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

Ethancarter
WRInaute discret
WRInaute discret
 
Messages: 77
Inscription: 25 Jan 2004

redirection avec htaccess, possible ?

Message le Dim Mai 23, 2004 21:42

Bonjour,

J'ai déplacé récemment des fichiers CGI (perl) de mon site. Ils étaient avant dans cgi-bin/1/ et sont maintenant dans cgi-bin/ tout court.

Je voudrais placer une redirection, de façon à ce que, lorsqu'une personne tape :

domaine.com/cgi-bin/1/index.cgi?action=machin

cette personne soit rédirigée vers :

domaine.com/cgi-bin/index.cgi?action=machin

Je voudrais une vraie redirection, pas un simple rewriting. C'est possible avec .htaccess ?

merci

Ethancarter
WRInaute discret
WRInaute discret
 
Messages: 77
Inscription: 25 Jan 2004

Message le Dim Mai 23, 2004 22:05

J'ai essayé :


Redirect permanent /cgi-bin/1/(.*) http://www.tro-online.com/cgi-bin/$1

sans aucun succés ! ça ne plante pas le serveur, mais il ne réagit pas. J'ai essayé dans le .htaccess du /html/ et du /cgi-bin/, mais c'est pareil ! :-(

Ethancarter
WRInaute discret
WRInaute discret
 
Messages: 77
Inscription: 25 Jan 2004

Message le Dim Mai 23, 2004 22:38

Bon, voilà ce que j'ai fait et ça fonctionne.. à peu prés :

RedirectMatch 301 /1/(.*) http://www.tro-online.com/cgi-bin/$1

Le problème, c'est que le ? et tout ce qui suit n'est pas pris en compte !

exemple : si je tape

/cgi-bin/1/test.cgi?commande=1

je suis renvoyé vers :

/cgi-bin/test.cgi les paramètres ne sont pas pris en compte !

Pourtant, quand je met .* dans la synatxe, le . doit prendre en compte n'importe quel caractère, non ?

Merci de votre aide.

chris421
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 16
Inscription: 23 Mai 2004

Message le Lun Mai 24, 2004 9:07

Le plus simple est de mettre un lien symbolique du rep /cgi-bin/1 vers /cgi-bin :

place-toi dans le repertoire cgi-bin et tappe la commande :

ln -s . 1

ainsi, toute demande faite vers le répertoire /cgi-bin/1 sera exécutée sur le répertoire /cgi-bin
Dernière édition par chris421 le Lun Mai 24, 2004 13:14, édité 1 fois.

Ethancarter
WRInaute discret
WRInaute discret
 
Messages: 77
Inscription: 25 Jan 2004

Message le Lun Mai 24, 2004 11:09

merci !

j'ai essayé, mais ça ne marche pas ! erreur 500 si je rajoute ta ligne, que ce soit avant ou aprés le RewriteEngine on .

Thierry Chatel
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 5
Inscription: 24 Mai 2004

Message le Lun Mai 24, 2004 15:01

Tu peux très bien faire une vraie redirection par un RewriteRule dans le .htaccess. C'est le flag 'R' qui sert à ça. Sauf que par défaut ça envoie un code HTTP 302 pour la redirection ("Déplacé temporairement"), il est préférable de spécifier explicitement d'utiliser le code 301 ("Déplacé définitivement").

Ca doit faire un truc dans le genre :
Code: Tout sélectionner
RewriteRule /cgi-bin/1/(.*)$ /cgi-bin/$1 [R=301,L,QSA]


Le R=301 pour la redirection sur le client avec un code 301, le L pour ne pas continuer le traitement du .htaccess, et le QSA pour conserver la même query string.

Ethancarter
WRInaute discret
WRInaute discret
 
Messages: 77
Inscription: 25 Jan 2004

Message le Mar Mai 25, 2004 23:23

C'est gentil mais ça ne marche pas !

La ligne est totalement ignorée par le serveur ! (alors que les autres rewriterule fonctionnent bien).

Peut-être une protection pour éviter qu'un CGI qui ne devait pas être exécuté ne le soit pas ?

Tout ce que j'ai réussi à faire, c'est :

Code: Tout sélectionner
RedirectMatch 301 ^/cgi-bin/1/(.*) http://www.tro-online.com/


J'avais bien essayé :
Code: Tout sélectionner
RedirectMatch 301 ^/cgi-bin/1/(.*) http://www.tro-online.com/cgi-bin/$1
mais le $1 ne contient que le nom du script et non les paramètres (query sting)

J'ai essayé en ajoutant [QSA] mais ça ne donnait rien (erreur 500)
Merci
Dernière édition par Ethancarter le Mar Mai 25, 2004 23:29, édité 1 fois.

Ethancarter
WRInaute discret
WRInaute discret
 
Messages: 77
Inscription: 25 Jan 2004

Message le Mar Mai 25, 2004 23:25

J'ai essayé aussi :

Code: Tout sélectionner
RedirectMatch  ^/cgi-bin/1/(.*) http://www.tro-online.com/test/$1 [QSA]


mais le query string n'est pas pris en compte non plus !

wap
WRInaute impliqué
WRInaute impliqué
 
Messages: 736
Inscription: 1 Mai 2004

Message le Mar Mai 25, 2004 23:27

Ethancarter a écrit:Peut-être une protection pour éviter qu'un CGI qui ne devait pas être exécuté ne le soit pas ?

Ca me semble assez probable.


Remi L.
WRInaute passionné
WRInaute passionné
 
Messages: 1063
Inscription: 6 Sep 2003

Message le Mer Mai 26, 2004 2:27

Et un simple :
RedirectPermanent /cgi-bin/1 h**p://domaine.tld/cgi-bin/
ça ne marche pas ?

Ethancarter
WRInaute discret
WRInaute discret
 
Messages: 77
Inscription: 25 Jan 2004

Message le Ven Mai 28, 2004 0:22

non, c'est pareil : le query string n'est pas pris en compte !

cgi-bin/1/index.cgi?machin redirige sur :

cgi-bin/index.cgi (sans le ? et ce qui suit)..

Une idée ?


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité