* esj@rezo.net tapuscrivait, le 30/07/2013 09:46:
Author: esj@rezo.net
Date: 2013-07-30 09:46:15 +0200 (mar, 30 jui 2013)
New Revision: 20729Log:
Enfin compris pourquoi SPIP compile parfois des squelettes o?\195?\185 la globale profondeur_url est incorrecte. Lorsqu'on place dans ecrire/.htaccess une redirection comme "ErrorDocument 403 /?page=403", curieusement Apache met dans $_SERVER[?\226?\128?\153REQUEST_URI'] l'URL initiale (donc avec ..../ecrire/...) tandis qu'il met dans $_SERVER[?\226?\128?\153SCRIPT_NAME'] l'URL de redirection (dans l'exemple ci-dessus une page ?\195?\160 la racine). Du coup, la compilation de cette page ?\195?\160 la racine se fait avec une profondeur d'URL qui est celle de ecrire/ et non de la racine. Pour peu que cette page et ses inclusions soient mises en cache, c'est toutes les autres pages qui les partagent qui se retouvent avec de mauvaises URL.On rep?\195?\168re d?\195?\169sormais ce cas en testant si $_SERVER['REDIRECT_STATUS'] est non vide, et on fixe alors la profondeur d'URL ?\195?\160 0 abitrairement. Il y a peut-?\195?\170tre encore mieux ?\195?\160 faire (notamment pour le cas de la mutualisation), mais au moins le cas le plus fr?\195?\169quent ne sera plus faux.
Modified:
branches/spip-2.1/ecrire/inc/utils.phpDetails: http://core.spip.org/projects/spip/repository/revisions/20729
Je confirme que ça plante en url propres2 sur SPIP 2.1
Comme signalé sur http://core.spip.org/projects/spip/repository/revisions/20746