Forums Développement Multimédia

Aller au contenu

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

CODE PHP MySQL

5 réponses à ce sujet

#1 steftournier

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 12 June 2009 - 12:48 PM

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.c...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

#2 Ldo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 9921 messages

Posté 12 June 2009 - 15:41 PM

Bonjour,

que cherche tu as faire exactement ?

#3 steftournier

    Ceinture Blanche

  • Members
  • Pip
  • 2 messages

Posté 15 June 2009 - 18:44 PM

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.c...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 ?

#4 t-servi.com

  • Members
  • PipPipPipPipPipPipPipPip
  • 765 messages

Posté 16 June 2009 - 07:44 AM

Salut,
Est-ce qu'une redirection ne ferait pas l'affaire ?
RedirectMatch (.*)$  http : //www.monsite.com/page1.html?variable=valeur

La doc apache : http://httpd.apache..../mod_alias.html

Meilleures salutations.
Jean Tinguely Awais.
http://www.t-servi.com

#5 Ldo

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 9921 messages

Posté 16 June 2009 - 10:17 AM

le mieux pour tracker d'où vienne les visiteurs, c'est le referer
même s'il peut être désactivé, c'est celui qui présente le moins de désavantage

le coup de la variable, pour google
http://www.monsite.c...variable=valeur
http://www.monsite.com/page1.html

sont deux pages différente
mais deux pages avec le même contenu
et pour la transmission de page-rank idem, les deux urls auront deux page-rank différent ...

bref, referer !

il suffit de le piocher dans la super variable $_SERVER['HTTP_REFERER'] où est la difficulté ?

#6 zebden

  • Honoris
  • PipPipPipPipPipPipPipPip
  • 1395 messages

Posté 16 June 2009 - 16:28 PM

+1 pour le REFERER !

Sinon pour la réponse de base , si tu réécris une url genre

^page([0-9]+)\.html$ index.php?module=page&id=$1

tu précises dans les flags, que tu acceptes aussi les variables passées après le ? qui donne :

RewriteRule ^page([0-9]+)\.html$ index.php?module=page&id=$1 [QSA, L]

et là , tu n'auras qu'à chercher ta variable "variable" égal à valeur normalement.

Mais sinon check plutôt le referer ou les deux...

Bon courage :shock:



1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP