Bonjour tout le monde,
J'ai un soucis qui apparemment est connu (voir https://fr.piwigo.org/forum/viewtopic.php?pid=226736)
Je viens de déplacer mon site de chez O2Switch vers Bonohost
j'ai en même temps fait toutes les mises a jour (script et plug), donc je ne sais pas si ce Pb vient de l'hébergeur ou des mise a jour...
BonoHost : hébergeur en Angleterre (https://www.bonohost.net/), Linux, Php 7.4
J'ai cherché sur le forum et sur GG, y a 36 versions de solution ...
j'ai donc adopté la solution d'Elodie que l'on trouve aussi sur Gitub et ca fonctionne.
Ma question :
est ce que je peux laisser mon site avec cette modif en permanence ?
ou bien avez vous une solution pérenne ?
ou bien faut il que je fasse une demande auprès de mon hébergeur comme certain le préconise ...
par avance merci.
Dc
Version de Piwigo: 11.3
Version de PHP: 7.4.14
Version de MySQL: mysqlnd enabled Version mysqlnd 7.4.14
PhpMyAdmin : Version : 5.0.2
Hors ligne
Re,
si ca peut aider :
je viens de faire un autre transfert d'une version V2.10 sur le même hébergeur.
j'ai pu constater qu'avant de faire la mise à jour ver la 11.3.0 le problème n'existait pas.
et il est réapparu avec la version 11.3.0 et toutes les mises a jour des plug.
A plus
Dc
Hors ligne
Bonjour,
c'est quoi la correction d'Elodie ?
Hors ligne
Bonjour,
C'est dans le post que j'ai cité au debut
voila la modif indiquée par ELODI FSH le 17/02/2019 :
Bonjour,
C'est exactement ça, Piwigo ne semble pas prendre en compte le cas de la présence d'un Front-web (reverse proxy) tel que HAProxy ou NGinx-proxy par exemple de la ligne 75 dans le fichier ./include/functions_url.inc.php.
En effet, il y a écrit ceci :
$url_port = ':'.$_SERVER['SERVER_PORT'];
if (strrchr($url, ':') != $url_port)
{
$url .= $url_port;
Or derrière un Front-Web, le $_SERVER['HTTPS'] sera à 'on' et le $_SERVER['SERVER_PORT'] implicitement à 80, mais la connexion jusqu'au Front-Web aura bien été sécurisé.
Le mieux serai de commenter les lignes 72 à 80 :
Code:
if ( (!$is_https && $_SERVER['SERVER_PORT'] != 80)
||($is_https && $_SERVER['SERVER_PORT'] != 443))
{
$url_port = ':'.$_SERVER['SERVER_PORT'];
if (strrchr($url, ':') != $url_port)
{
$url .= $url_port;
}
}
par ceci :
Code:
/*
if ( (!$is_https && $_SERVER['SERVER_PORT'] != 80)
||($is_https && $_SERVER['SERVER_PORT'] != 443))
{
$url_port = ':'.$_SERVER['SERVER_PORT'];
if (strrchr($url, ':') != $url_port)
{
$url .= $url_port;
}
}
*/
Pour moi c'est vers les lignes 58/66
A plus
Dc
Hors ligne
justement le port 80 est le port standard ; cette modif n'a de sens que si en interne le serveur php est configuré de manière trop exotique et retourne de manière erronée un autre port à utilisation purement interne, aux scripts qui n'en ont que faire.
perso je ne suis pas spécialiste du tout sur ce point technique, mais tout ce que j'ai lu à ce sujet désignait comme cause une mauvaise config d'apache/nginx
Hors ligne