1 votes

Est-il possible d'ajouter une variable aléatoire à la chaîne de recherche en utilisant mod-rewrite ?

Nous avons un problème très étrange avec un proxy qu'un client utilise.

En bref, leur proxy met en cache des informations qu'il ne devrait pas mettre en cache. Nous disposons des informations appropriées dans l'en-tête qui indiquent au serveur mandataire de ne pas mettre en cache les informations et nous utilisons le protocole SSL, mais le problème persiste.

Je peux empêcher cela ou y remédier en ajoutant une variable aléatoire à la fin de la chaîne de recherche dans l'URL.

Par exemple :

Le fichier /information.php peut afficher des informations en cache, alors que le fichier /information.php?randomvariable=12345 ne le fera pas.

Existe-t-il une règle de réécriture de mod qui permette de faire quelque chose comme ça ?

Merci !

Modifier -

À la demande de Squillman, voici les métadonnées que nous envoyons pour la mise en cache (je me suis mal exprimé, ce sont des métadonnées, pas des informations d'en-tête HTTP) :

<meta http-equiv="CACHE-CONTROL" CONTENT="NO-CACHE">
<meta http-equiv="PRAGMA" CONTENT="NO-CACHE">
<meta http-equiv="Expires" content="Mon, 26 Jul 1997 05:00:00 GMT"/>
<meta http-equiv="Pragma" content="no-cache" />

J'espère que cela vous aidera ! Merci.

Edit 2 -

J'ai mis en place un correctif au niveau de l'application. J'ajoute une variable aléatoire (seed=random md5) à la chaîne de requête pour chaque demande. C'est sale, mais ça marche.

Je publierai une mise à jour dès que j'aurai compris pourquoi ce problème se produit. Merci pour les réponses !

0 votes

Juste pour le plaisir d'argumenter, pouvez-vous afficher les en-têtes que vous envoyez au client ?

1voto

Warren Blanchet Points 881

Quelques questions :

  • Etes-vous sûr que c'est le proxy qui fait la mise en cache ?
  • Si oui, qu'avez-vous fait pour le confirmer ?
  • Savez-vous quel produit proxy le client utilise ?

Le fait qu'il passe par SSL signifie que le proxy ne doit pas le mettre en cache, point final (désolé, j'ai oublié de mentionner SSL avant de poster mon commentaire). S'il s'agit d'un produit proxy de grande marque, je soupçonnerais davantage que ce sont les clients qui se comportent mal.

Je ne suis pas sûr que ce soit possible avec mod_rewrite. Ne pouvez-vous pas simplement le générer à partir de PHP ?

0 votes

L'idée que c'est un proxy qui cause le problème vient du client. Il a déclaré qu'il venait de mettre en place un nouveau serveur proxy et que le moment où le problème est apparu coïncide avec cette mise en place. Ils utilisent notre produit depuis environ un an sans aucun problème, et le problème serait certainement apparu avant. Il n'y a eu aucune modification du produit de notre côté non plus Je suis perplexe. Merci encore pour l'information.

0 votes

@Ian P - Oui, je les questionnerais vraiment sur la question du proxy. Les proxys normaux ne devraient tout simplement PAS être en mesure de s'introduire dans une requête au sein de SSL.

0 votes

+1 pour SSL et no-cache. Je suis d'accord en principe avec ce que vous dites ici, mais il est de plus en plus courant que les filtres web aient la capacité d'inspecter SSL (via un proxy explicite et la génération de certificats à la volée), bien que je ne pense pas qu'il y en ait un qui puisse forcer la mise en cache.

0voto

jason saldo Points 5036

Mod_rewrite a un MapType de rnd qui peut faire ce que vous voulez.

Voir cette page en texte clair randomisé.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X