Aller au contenu

Comment afficher une variable dans l'url ? (Apache: url rewriting et http_referer)


Sujets conseillés

Bonjour à tous,

Je suis sur un gros projet très important pour moi, et j'ai besoin de votre avis en matière d'url rewriting.

Je sais qu'il est possible d'ajouter une variable à la fin des urls qui viennent d'un même referer (= d'un même site).

Ex: le site http://www.sitedorigine.fr/ fait un lien vers http://www.monsite.com/page1.html

Je cherche à ce que la page qui s'affiche ait l'url suivante: http://www.monsite.com/page1.html?variable=valeur

Après mes recherches sur le net, je suis arrivé à la formulation suivante:

RewriteCond %{HTTP_REFERER} ^http://www.sitedorigine.fr/ [NC]

RewriteRule ^.*$ ?variable=valeur [L]

Le problème, c'est que ça fonctionne à moitié: soit la variable s'affiche, mais sur la page d'accueil; soit le navigateur indique une erreur 500.

Auriez-vous des pistes pour trouver la bonne méthode afin d'arriver à ce résultat ?

Note : Cette variable n'a besoin d'être affichée que sur l'url de la page de destination seulement. Une fois affichée sur cette page de destination, cette variable n'a plus à s'afficher sur les autres pages visitées. L'essentiel est que la première page visitée affiche cette url.

Merci d'avance,

Stef

Lien vers le commentaire
Partager sur d’autres sites

Je ne sais pas ce que tu veux dire par :

Cette variable n'a besoin d'être affichée que sur l'url de la page de destination seulement.

Afficher où ? Et comment ? Si tu parles de la barre d'adresse, c'est normal qu'elle ne s'affiche pas vu que c'est une simple réécriture (pas une redirection)

Quoiqu'il en soit j'essaierais plutôt:

RewriteRule ^(.*)$ $1?variable=valeur [L]

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

et merci de vos réponses.

Ayendail: merci, je vais regarder cela de plus près.

Ernestine: avec cette orthographe

RewriteRule ^(.*)$ $1?variable=valeur [L]

le site devient inaccessible, avec l'erreur suivante :

"Internal Server Error"

Vous avez une idée d'où se situe le problème?

Merci

Stephane.

Lien vers le commentaire
Partager sur d’autres sites

Je vais être plus précis sur ce que je souhaite faire:

J'ai 2 sites: -http://www.sitedorigine.fr/ et -http://www.monsite.com/

Je souhaite tracker les visites de -http://www.monsite.com/ envoyées par -http://www.sitedorigine.fr/. Pour se faire, j'ai recours à un outil spécialisé pour l'affiliation, qui permet de tracker ces visites automatiquement, grâce à une variable contenue dans l'url.

Ainsi, lorsque sitedorigine.fr/ fait un lien vers une page de monsite.com/ (par exemple -http://www.monsite.com/page1.html), je rajoute la variable dans cette url, et la visite est trackée: -http://www.monsite.com/page1.html?variable=valeur

Cependant, le lien est alors identifié par Google comme étant un lien affilié (à cause de la variable contenue dans l'url du site d'origine). Voulant éviter cela, je souhaite que le site d'origine fasse un lien vers la page en question, sans variable (http://www.monsite.com/page1.html).

Afin de continuer à tracker les visites, je voudrais que la variable apparaisse dans la barre de navigation, mais une fois que le visiteur est sur mon site. Pour cela, je voudrais faire une redirection, qui dise : "toutes les pages de monsite.com/ qui proviennent de sitedorigine.fr/ affichent en plus la variable "?variable=valeur" dans la barre de navigation.

Pour se faire, j'ai recours au http_referer. Le problème, c'est que j'ai du mal à le mettre en place.

D'où ma question: qu'est-ce qui serait le plus approprié pour faire cela ?

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...