Rewriterule vers un autre site

  • Auteur de la discussion Auteur de la discussion Pouzy
  • Date de début Date de début
WRInaute passionné
Bonjour, ma question est simple .. Est-il possible de rediriger vers un autre site avec un rewriterule ? Du genre :

Code:
RewriteRule ^page-([0-9]*).html www.site1.com/page.php?out=$1

Je n'ai pas l'impression que ça fonctionne .. j'ai peut être omis quelqueschose ? ou est-ce tout bonnement impossible ? Si oui, par quel autre moyen est-ce faisable ? merci !
 
WRInaute occasionnel
ça ça devrait marcher :
Code:
RewriteEngine On
RewriteRule ^/?page-([0-9]*).html http://www.example.com/page.php?out=$1 [L,R]

Par contre, tu verras l'URL modifiée dans le navigateur client, je ne suis pas sur que tu puisses faire sans (pour essayer, remplace [L,R] par [L] mais je ne crois pas que ça fonctionne ainsi)
 
WRInaute passionné
BIzarre, ç a apas l'air de vouloir marcher ...
Pour info, voilà mon vrai but : Utiliser le formulaire de recherche google ( voir le "rechercher" dans le menu de gauche sur www.aidoforum.com )
Et au lieu d'avoir l'url google en haut, je voudrais une url de type aidoforum.com/rechercher-la-recherche-effectuee.php

:?
Donc, j'ai ceci :

Code:
RewriteRule ^rechercher-(.*)-(.*)-(.*)-(.*)-(.*)-(.*).html https://www.google.com/custom?cof=LW%3A408%3BLH%3A110%3BL%3Ahttp%3A%2F%2Fmembres.lycos.fr%2Fdrolopouzy%2Fimages%2Ftutos%2Flogoogle.jpg%3BGIMP%3Ablack%3BT%3Ablack%3BALC%3Ablack%3BGFNT%3Agrey%3BLC%3A%234993d4%3BBGC%3Awrith%3BAH%3Acenter%3BVLC%3Apurple%3BGL%3A0%3BGALT%3Agreen%3BAWFID%3A9262c37cefe23a86%3B&domains=Aidoforum.com&sitesearch=Aidoforum.com&q=$1+$2+$3+$4+$5+$6  [L,R]

Ce qui devrait normalement fonctionner jusqu'à 6 mots dans la requête ..
Et je tombe sur la redirection 404 :'(
 
WRInaute occasionnel
Ok, alors peut-etre qu'il te faut :
- ajouter le flag NE pour No Escape (pour éviter de réinterpreter les signes %)
- "quoter" les % avec un \ ainsi :

Code:
RewriteRule ^rechercher-(.*)-(.*)-(.*)-(.*)-(.*)-(.*).html https://www.google.com/custom?cof=LW\%3A408\%3BLH\%3A110\%3BL\%3Ahttp\%3A\%2F\%2Fmembres.lycos.fr\%2Fdrolopouzy\%2Fimages\%2Ftutos\%2Flogoogle.jpg\%3BGIMP\%3Ablack\%3BT\%3Ablack\%3BALC\%3Ablack\%3BGFNT\%3Agrey\%3BLC\%3A\%234993d4\%3BBGC\%3Awrith\%3BAH\%3Acenter\%3BVLC\%3Apurple\%3BGL\%3A0\%3BGALT\%3Agreen\%3BAWFID\%3A9262c37cefe23a86\%3B&domains=Aidoforum.com&sitesearch=Aidoforum.com&q=$1+$2+$3+$4+$5+$6 [NE,L,R]

En test local chez moi, ça fonctionne comme tu le veux avec l'image de ton forum et tout le toutim
 
WRInaute occasionnel
Tiens, cadeau, une variante qui fonctionne même si tu ne mets que 1 ou 2 arguments

Code:
RewriteRule ^rechercher(?:-([^-]+)){1,6}.html https://www.google.com/custom?cof=LW\%3A408\%3BLH\%3A110\%3BL\%3Ahttp\%3A\%2F\%2Fmembres.lycos.fr\%2Fdrolopouzy\%2Fimages\%2Ftutos\%2Flogoogle.jpg\%3BGIMP\%3Ablack\%3BT\%3Ablack\%3BALC\%3Ablack\%3BGFNT\%3Agrey\%3BLC\%3A\%234993d4\%3BBGC\%3Awrith\%3BAH\%3Acenter\%3BVLC\%3Apurple\%3BGL\%3A0\%3BGALT\%3Agreen\%3BAWFID\%3A9262c37cefe23a86\%3B&domains=Aidoforum.com&sitesearch=Aidoforum.com&q=$1+$2+$3+$4+$5+$6 [NE,L,R]

Avec ça, rechercher-mot1.html marche aussi, pas avec la 1ere version.
 
WRInaute accro
Hum, les rewrite ce n'est qu'en interne non ?
Dans tous les cas,il faut rediriger (avec [R]) pour aller "à l'extérieur".

Enfin je m'étais posé la question et je pense que c'est ça :lol:.
 
WRInaute passionné
Erf, avec ta rewriterule, ChezThierry, j'ai un beau

Code:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

:/
 
WRInaute passionné
Bon, j'abandonne pour l'extérieur, j'ai trouvé un système de frames .. Par contre, je bloque toujours sur le nomrbe d'entrées, je pige pas trop l'internal error :/ !

J'espère que vous avez une petite idée de ce qui se trame derrière cette erreur ^^ Merci !
 
WRInaute occasionnel
Pouzy a dit:
Erf, avec ta rewriterule, ChezThierry, j'ai un beau

Code:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.

:/

mon bout de code passe à la ligne parce que trop long pour s'afficher ici, je suppose que tu as tout mis sur une seule et même ligne, toi ?
 
WRInaute passionné
Oui, oui, bien sûr :) Mais erreur quand même :cry:

PS : est-il normal qu'il n'y ait pas de tirait juste après le ^rechercher ? Vu que je veux une page de type rechercher-mot.html ..
Je ne comprends pas du tout cette ligne, pour tout dire ^^
 
WRInaute occasionnel
Bien voila à quoi correspond la ligne :

^rechercher(?:-([^-]+)){1,6}.html

^ : pour début d'URL (en général, je met plutot ^/? pour matcher avec ou sans le / qui n'apparait bizarrement pas tout le temps


puis je créé un groupe qui ne sera pas converti en $1, $2, etc... c'est l'objectif du (?: ... ). Normalement, si tu groupes avec des parenthèse, ça crée automatiquement les variables $1 correspondant, mais avec (?: ça groupe SANS créer les variables puisque je n'en ai pas besoin pour ce groupe là. Ce groupe ne me servira qu'à préciser qu'on veut de 1 à 6 paramètres.

Donc maintenant, dans les parenthèse, j'ai mes paramètres : -([^-]+)
C'est là que se trouve le tiret que tu dis ne pas trouver. Sauf que placé dans cette parenthèse, c'est aussi celui-ci qui correspondra aux tirets entre chaque paramètre. Les parenthèse groupent normalement tout caractère sauf un tiret, et on forme notre $1 si y'a un match.

après la parenthèse, on trouve le {1,6} qui signifie : dernier élément est répété de 1 à 6 fois, et le dernier élément c'est notre première parenthèse, qui englobe donc le tiret. C'est grace à ce {1,6} que l'on va matcher aussi bien rechercher-toto.html que rechercher-toto-tata-titi.html

Ensuite tu as ton URL, ou j'ai :
- remplacé les % par des \% pour éviter que Apache ne le réinterprete, sinon les % sont (mal) interprétés et LW%3A408 dans ton URL devient LWA408 et ne fonctionne plus.

Ensuite, comme options je passe :
* NE : NoEscape, sinon le signe % est remplacé par %25 automatiquement, ce qu'on ne veut pas.
* R : pour effectuer une redirection
* L : pour ne pas traiter les eventuels commandes situées plus loin dans le .htaccess lorsque celle-là convient à l'URL appelée.

Voila. Et pour info, la ligne exacte que je t'ai indiquée ici fonctionne chez moi sous xampp (qui me sert à faire mes essais quand je file un coup de main avec les .htaccess)

J'ai donc un .htaccess à la racine qui ne contient que 2 lignes,
RewriteEngine On
et celle copiée plus haut.

PS: j'espère avoir été clair sur l'explication de la RewriteRule, mais n'hésite pas à demander plus d'éclaircissements si ce n'est pas le cas :)
 
WRInaute passionné
Merci pour cette explication exhaustive ! :)
En fait, je vais utiliser le tout simple
RewriteRule ^rechercher-(.*).html conseillé par Olivier, et après je me débrouille à l'intérieur de la page pour la séparation des mots, etc .. j'ai réussi :) ( voir le formulaire de rechercher dans le menu du site de mon WWW )
Merci pour tout ChezThierry !
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut