Cache SPIP et paramètres URLs

Bonjour,
J’ai un site avec un fort traffic venant d’une acquisition chez Google (ou autre d’ailleurs, c’est pas moi qui m’en charge).
Les visiteurs viennent donc sur le site avec des paramètres supplémentaires dans l’URL (at_medium, at_campaign, at_platform, et surtout gclid qui doit être unique pour chaque visiteur). J’ai la forte impression que tout ces appels génèrent un fichier cache par visiteur, c’est bien ça ?

J’ai vu qu’il y’a une variable define _CONTEXTE_IGNORE_VARIABLES qui pourrait régler mon problème https://git.spip.net/spip/spip/src/branch/master/ecrire/public/assembler.php#L27 mais elle est liée à la fonction nettoyer_uri_var pour laquelle je n’ai pas la main semble-t’il https://git.spip.net/spip/spip/src/branch/master/ecrire/inc/utils.php#L728

/**
 * Nettoie une request_uri des paramètres var_xxx
 *
 * Attention, la regexp doit suivre _CONTEXTE_IGNORE_VARIABLES défini au début de public/assembler.php
 *
 * @param $request_uri
 * @return string
 */
function nettoyer_uri_var($request_uri) {
	$uri1 = $request_uri;
	do {
		$uri = $uri1;
		$uri1 = preg_replace(
			',([?&])(var_[^=&]*|PHPSESSID|fbclid|utm_[^=&]*)=[^&]*(&|$),i',
			'\1',
			$uri
		);
	} while ($uri <> $uri1);
	return preg_replace(',[?&]$,', '', $uri1);
}

Est-ce que je peux me contenter de modifier _CONTEXTE_IGNORE_VARIABLES ? Dois-je modifier également le fichier utils.php du core ?

Le 30/05/2022 à 11:59, MathieuAlphamosa via Discuter de SPIP a écrit :

|’,([?&])(var_[^=&]|PHPSESSID|fbclid|utm_[^=&])=[^&]*(&|$),i’,|

On voit que la regex que tu pointes là enlève déjà des variables qui sont exactement du même type dont tu parles au début. Mais seulement certaines.

Donc je pense qu’il faudrait faire un ticket du core pour demander 1) à ce que ça prenne en compte d’office plus de variables inutiles dans celles qui sont bien connues (là ya que FB mais ajouter Google etc), ET 2) que ce soit extensible, qui par un pipeline ou un define, à voir.


RastaPopoulos

1 « J'aime »

Merci @rastapopoulos, j’ai donc publié un ticket : https://git.spip.net/spip/spip/issues/5200
A noter que j’ai, pour le moment, ajouter les paramètres concernés dans le define _CONTEXTE_IGNORE_VARIABLES, c’est délicat à mesurer vu que le flux de visiteur n’est pas constant dans le temps mais j’ai malgré tout l’impression que ça a sensiblement réduit le nombre de fichiers cache produit par SPIP chaque minute.