FORK CPL 50209 - réécriture d'adresses
Fork CPL 50209 - Réécriture d'adresses :
J'ai relevé des problèmes sur un site installé sur un sous-répertoire si j'active la rééciture d'adresses dans config générale.
- 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, lorsqu'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 2444 $stop = '# URL rewriting'.chr(13).chr(10); par $stop = '# URL rewriting'; ajouter après 2450 $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 2495 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 2502 if ($hta != $stop) $st .= $hta; else break; par if (str_replace(chr(13),'',str_replace(chr(10),'',$hta)) != $stop) $st .= $hta; else break;
Dans le fichier, les anciennes lignes sont conservées et annulées par //. Toutes les modifs sont repérées par une signature "CPL" et une date.
Date de création : 27/11/2019 - 21:24
Dernière modification : 29/11/2019 - 08:43
Catégorie : - FORK CPL 50209
Page lue 1883 fois