MUTUALISATION : https://www.SITE => erreur ecrire/inc/charsets.php on line 45

Bonsoir les gurus spip

On viens de me remonter le 5 Juin une erreur sur tous les sites du type
/ecrire/inc/charsets.php

Mutualisation chez infomaniak , les domaines sont configuré comme suit :

image

exemple :
http://www.bleufoncemusic.com/

et je ne voie pas comment résoudre mon probléme; une idée, un tuto
merci beaucoup

Version de SPIP ?

PS : chez moi ça marche™ en 4.2.14 et 4.3beta git

arffffff sorry
image

Sans doute un problème avec quelque chose fait dans mes_options.php

Merci pour la piste

mais je voie pas ce qui pourais coincer car c’est récent et le mes_options.php n’a pas bougé

<?php /* MUTUALISATION*/

/*

  • Inscrire ici le nom du site d’administration du tableau de bord de la mutualisation (ou plusieurs, separes par des virgules) */
    define (’_SITES_ADMIN_MUTUALISATION’, ‹ spipfactory.fr ›);

if (!defined("_ECRIRE_INC_VERSION")) return;
if (!is_readable (_DIR_RACINE.‹ mutualisation/mutualiser.php ›)) {
echo _L("Fichier ‹ mutualisation/mutualiser.php › manquant dans la racine " . _DIR_RACINE);
exit;
}
require _DIR_RACINE.‹ mutualisation/mutualiser.php ›;
/* placer dans ce tableau les sites ou l’on ne veut pas la redirection canonique */
$www = array();

$site = str_replace(‹ www. ›, ‹  ›, $_SERVER[‹ HTTP_HOST ›]);

// Ne pas autoriser le répertoire plugins auto
define (’_DIR_PLUGINS_AUTO’, false);
// mettre a true si on souhaite que le site maitre voie les dépots
define (’_AUTORISER_TELECHARGER_PLUGINS’,true);

if ($site != $_SERVER[‹ HTTP_HOST ›] AND !in_array($site, $www)) {
include_spip(‹ inc/headers ›);
$req = isset($_SERVER[‹ REQUEST_URI ›]) ? $_SERVER[‹ REQUEST_URI ›] : ‹ / ›;
if (isset($_SERVER[‹ HTTPS ›])
AND test_valeur_serveur($_SERVER[‹ HTTPS ›]))
$protocole = ‹ https ›;
elseif (!isset($_SERVER[« SCRIPT_URI »]) OR !($p = strpos($_SERVER[« SCRIPT_URI »], ‹ :// ›)))
$protocole = ‹ http ›;
else $protocole = substr($_SERVER[« SCRIPT_URI »],0,$p);
redirige_par_entete($protocole . ‹ :// › . $site . $req);
}

define (’_INSTALL_SITE_PREF’, prefixe_mutualisation($site));

demarrer_site($site,
array(
‹ creer_site › => true, //installer les fichiers spip d’un mutualisé

		'creer_base' => false,        // Creer ou non la base de donnee si elle n'existe pas (false)
		'creer_user_base' => false,  // Creer ou non un utilisateur pour la nouvelle base de donnee (false)
		'table_prefix' => false,     // Definir automatiquement le prefixe de table (false) ... mettre true si tous les sites dans la meme base

    'cookie_prefix' => true, // force les table a commencer par spip_
    'repertoire' => 'xxxxx', //A changer si vous voulez utiliser autre chose que ce répertoire pour les sites mutualisés.
    'url_img_courtes' => true,	// Utiliser la redirection des URL d'images courtes dans la partie publique (false)
    'code' => 'xxxxx',
    'mail' => 'team@spipfactory.fr',
    'annonce' => 'xxxxx', // Texte a afficher en bas du formulaire d'activation de la mutualisation
  )

);

je continue de creuser et chercher :wink:

htaccess origine spip 4.2.14
mes_options ci_dessus
spip 4.2.14 réinjecter ce jour

Bonjour
question bête il y a bien la ligne « charset » dans la table meta ??

j’ai prie un site au hasard de la mutu, puisqu’il sont tous concerné et j’ai bien la ligne :

|charset |utf-8 |oui |2022-08-22 19:33:43|

merci pour la piste

je vais voir en remontant une mutu avec un spip inférieur car semblerais que spip 4.2.7 ne pose pas probléme , mais le site est hors mutu donc faut que je creuse

exemple : http://www.00fgw.spipfactory.org/

yo
Alors je sais pas si il y aura des effets de bord, mais dans le fichier mes_options.php
de la mutualisation

si je commente la ligne // redirige_par_entete($protocole . ‹ :// › . $site . $req);

je résoud l’erreur et j’ai bien mon www qui pointe correctement en redirigeant sur le https://
https://www.bleufoncemusic.com/

le code issue du pseudo plugin mutualisation

if ($site != $_SERVER[‹ HTTP_HOST ›] AND !in_array($site, $www)) {
include_spip(‹ inc/headers ›);
$req = isset($_SERVER[‹ REQUEST_URI ›]) ? $_SERVER[‹ REQUEST_URI ›] : ‹ / ›;
if (isset($_SERVER[‹ HTTPS ›])
AND test_valeur_serveur($_SERVER[‹ HTTPS ›]))
$protocole = ‹ https ›;
elseif (!isset($_SERVER[« SCRIPT_URI »]) OR !($p = strpos($_SERVER[« SCRIPT_URI »], ‹ :// ›)))
$protocole = ‹ http ›;
else $protocole = substr($_SERVER[« SCRIPT_URI »],0,$p);
// redirige_par_entete($protocole . ‹ :// › . $site . $req);
}

a vous lire pour savoir si la modification est pérénne ou si c’est une héresie
merci