FORKS 50303 - ReecritureAdresse

Forks 50303 - ReecritureAdresse :

J'ai relevé des problèmes si j'active la rééciture d'adresses dans config générale, sur un site installé sur un sous-répertoire. Après analys des problèmes, il s'avère que:

  • Dans le htaccess, la clause RewriteBase doit contenir le nom des sous-répertoires : /rep1/rep2/ si le site est http://monsite/rep1/rep2/.
  • Si le .htaccess est modifié manuellement et qu'ensuite, on inactive la reécriture d'adresse dans config générale, le htaccess, n'est pas modifié, ce qui fait que, à l'activation suivante, on a 2 fois les règles.

Il faut modifier la fonction setURLrewriting du fichier /inc/functions.php comme suit:

Remplacer la ligne 2448
    $stop     = '# URL rewriting'.chr(13).chr(10);
par    
    $stop     = '# URL rewriting';

ajouter après 2454
        $base     = substr($site[3],strpos($site[3],'/',8));    // pour les sites en sous-répertoire
        $uheader[5] = (strpos($uheader[5],'RewriteBase') !== FALSE) ? 'RewriteBase '.$base.chr(13).chr(10) : $uheader[5];

remplacer la ligne 2493
        if (!in_array($stop, $htaccess)) break;
par
       foreach ($htaccess as $hta)
            if (str_replace(chr(13),'',str_replace(chr(10),'',$hta)) != $stop) break;

remplacer la ligne 2496
    if ($hta != $stop) $st .= $hta; else break;
par
           if (str_replace(chr(13),'',str_replace(chr(10),'',$hta)) != $stop) $st .= $hta; else break;

Dans cette version, le fork est installé dans l'admin du plugin CPL_commun, via la fonction cpl_fork (voir la doc du plugin).


Date de création : 02/07/2020 - 17:52
Dernière modification : 03/07/2020 - 10:15
Catégorie : - FORKS 50303
Page lue 209 fois