Valider 557282a3 rédigé par cerdic's avatar cerdic
Parcourir les fichiers

Report de r21687 : Bugfix : certains raccourisseurs d'URL transorment les...

Report de r21687 : Bugfix : certains raccourisseurs d'URL transorment les ?articleXX en ?articleXX= ce qui provoquait le bug suivant

quand on demande spip.php?article6434 :
- on regarde le cache : rien en cache
- du coup on analyse l'URL : ça matche articleXXX donc on redirige vers l'article XXX

quand on demande spip.php?article6434= (noter le "=" à la fin de l'URL)
- on regarde le cache : rien en cache
- du coup on analyse l'URL : ça matche PAS articleXXX à cause du "="
- on calcule la page => pas d'id article en url ni autre => page sommaire
- on met en cache

Le coup suivant, on demande spip.php?article6434
- on regarde en cache : et là subtilité, le contexte du cache est le même que pour l'URL spip.php?article6434= :
array('article6434' => '', 'lang'=>'fr')
du coup on a bien une page en cache, on la ressort et on l'envoie. Manque de bol c'était le sommaire !
parent 9af9d38d
Chargement en cours
Chargement en cours
Chargement en cours
Chargement en cours
+1 −1
Numéro de ligne d'origine Numéro de ligne de diff Ligne de diff
@@ -190,7 +190,7 @@ function nettoyer_url_page($url, $contexte=array())
	$url_objets = urls_liste_objets();
	$raccourci_url_page_html = ',^(?:[^?]*/)?('. $url_objets . ')([0-9]+)(?:\.html)?([?&].*)?$,';
	$raccourci_url_page_id = ',^(?:[^?]*/)?('. $url_objets .')\.php3?[?]id_\1=([0-9]+)([?&].*)?$,';
	$raccourci_url_page_spip = ',^(?:[^?]*/)?(?:spip[.]php)?[?]('. $url_objets .')([0-9]+)(&.*)?$,';
	$raccourci_url_page_spip = ',^(?:[^?]*/)?(?:spip[.]php)?[?]('. $url_objets .')([0-9]+)=?(&.*)?$,';

	if (preg_match($raccourci_url_page_html, $url, $regs)
		OR preg_match($raccourci_url_page_id, $url, $regs)