Jump to content
axel584

[débutant] installation et problème de mixed content

Recommended Posts

Bonjour,

J'ai fait une nouvelle installation de Prestashop 1.7.6.3 et quand j'arrive sur la boutique, la feuille de style ne s'affiche pas. Pareil sur la partie d'admin.

J'ai l'erreur suivant dans la console : 

Mixed Content: The page at '<URL>' was loaded over HTTPS, but requested an insecure stylesheet '<URL>'. This request has been blocked; the content must be served over HTTPS.

(le même problème apparait 5 fois dans la console pour les fichiers theme.css, jquery-ui etc.)

Mon serveur redirige systématiquement les requêtes http vers du https et je ne peux pas changer la configuration.

Du coup, je me demande comment indiquer à Prestashop que je suis en https ? Je ne me souviens pas d'avoir rentré l'url de mon site, ni le protocole à utiliser.

J'ai essayé de modifier en base la clef "PS_SSL_ENABLED" à 1 dans la table de configuration, mais ça n'a rien changé. J'ai essayé de modifié la clef "PS_SSL_ENABLED_EVERYWHERE" à 1, mais là, il semble "boucler" et affiche une page blanche avec une erreur "trop de redirection".

Je n'y connais rien e prestashop, mais je connais un peu le développement web.

Merci pour votre aide,

 

Axel

 

Share this post


Link to post
Share on other sites

hébergeur?

serveur web ?

Share this post


Link to post
Share on other sites

C'est un hébergeur dédié pour une association dont je m'occupe.

Nous avons un serveur apache2 sur une Debian

Share this post


Link to post
Share on other sites

Bonjour,

J'ai une piste plus sérieuse, après m'être renseigné, on m'a expliqué qu'on avait un serveur nodeJS "en front" qui écoute sur les ports 80 et 443 (ssl) et suivant les urls utilisées redirigent vers apache qui est sur le port 8080.

Du coup, ça explique mon problème de "trop de direction". Mais je ne sais pas comment résoudre le problème. J'ai essayé de changer le fichier "config/config.inc.php" pour y mettre : 

define('_PS_SSL_PORT_', 8080);

Mais ça n'a pas résolu mon problème (j'ai un problème de redirection en boucle).

Tous les liens qui sont contenus dans le fichier index.php sont en http:// bien que j'y accède en https. (j'accède en https à la racine de ma boutique, mais quand je regarde le code source de la page, il n'y a que des liens en http pour le CSS du thème, les JS, les liens vers les autres pages etc.) Je me demande comment il sait s'il faut utiliser du http ou du https ? Est-ce que c'est juste la clef "PS_SSL_ENABLED" dans la table de configuration ? Dans le code, je vois ça : 

$https_link = (Tools::usingSecureMode() && Configuration::get('PS_SSL_ENABLED')) ? 'https://' : 'http://';

Comment est configuré ce "usingSecureMode" ?

Merci pour votre aide,

 

Axel

 

 

Share this post


Link to post
Share on other sites

ça c'est la config tordue par excellence.

Il faut que prestashop génère des urls en https pour les liens donc activer ssl et ssl_everywhere

Mais il ne faut pas qu'il redirige car il voit le mauvais protocole et le mauvais pour donc désactiver les redirections dans SEO&URL

S'assurer également qu'il n'y a pas de Redirection https dans le .htaccess

 

 

Share this post


Link to post
Share on other sites

Le problème c'est que j'ai difficilement accès aux interfaces (car pas de feuille de style).

Quels sont les clefs de configuration à modifier pour désactiver les redirections dans SEO&URL ?

J'ai essayé de changer "PS_CANONICAL_REDIRECT" mais ça ne semble pas suffire...

Et pour revenir à ma question de tout à l'heure, comment est configuré "usingSecureMode" ? comment prestashop sait quel protocole il est utilisé ? (apparemment, ce n'est pas à partir de l'url)

Merci pour vos informations,

 

Axel

Share this post


Link to post
Share on other sites

à partir des 2 variable citée précedement et du drapeau $this->ssl du controlleur

 

Share this post


Link to post
Share on other sites

Merci, mais je sèche un peu. Je n'ai pas réussi à trouver où se trouve "le" controlleur (car il y a un grand nombre de controlleurs dans le répertoire "controllers".

J'avais en tête une solution, je ne sais pas si elle est applicable (ni même comment), je sais qu'il est possible de faire des liens sans préciser le protocole et le navigateur utilise le protocole de la page appelante. Il suffit de mettre un lien du style : href="//monsite.fr/mapage.ext" (au lieu de href="http://..." ou href="https://")

J'ai essayé sur une page statique et ça fonctionne bien. Du coup, ma question est de savoir comment faire en sorte que prestashop me génère :

 

  <link rel="icon" type="image/vnd.microsoft.icon" href="/butiko/img/favicon.ico?1324977642">
  <link rel="shortcut icon" type="image/x-icon" href="/butiko/img/favicon.ico?1324977642">

    <link rel="stylesheet" href="//monsite/prestashop/themes/classic/assets/css/theme.css" type="text/css" media="all">
  <link rel="stylesheet" href="//monsite/prestashop/js/jquery/ui/themes/base/minified/jquery-ui.min.css" type="text/css" media="all">
  <link rel="stylesheet" href="//monsite/prestashop/js/jquery/ui/themes/base/minified/jquery.ui.theme.min.css" type="text/css" media="all">
  <link rel="stylesheet" href="//monsite/prestashop/modules/ps_imageslider/css/homeslider.css" type="text/css" media="all">
  <link rel="stylesheet" href="//monsite/prestashop/themes/classic/assets/css/custom.css" type="text/css" media="all">

(j'ai essayé de faire ça sur une page statique html et ça fonctionne bien).

J'ai regardé dans les templates, j'ai trouvé le code dans : themes/classic/templates/_partials/stylesheet.tpl

{foreach $stylesheets.external as $stylesheet}
  <link rel="stylesheet" href="{$stylesheet.uri}" type="text/css" media="{$stylesheet.media}">
{/foreach}

Mais je n'ai pas trouvé où est construit ou stocké la variables $stylesheets.

Pouvez vous m'aider là dessus ?

 

Merci d'avance,

 

Axel

 

Share this post


Link to post
Share on other sites

Non mais je ne comptrends pas ce que tu cherches?

Tu as demandé comment était construite l'url, je te l'explique c'est tout il n'y a rien a changer de ce coté là

Ce que tu dois changer c'est a cause de ton front-end nodejs et il suffit de régler SSL, SSL_EVERYWHERE, et CANONICAL

donc dans la table ps_configuration:

PS_SSL_ENABLED = 1
PS_SSL_ENABLED_EVERYWHERE = 1
PS_CANONICAL_REDIRECT = 0

 

De plus il te faut faire une override de ta classe classes/controller/FrontController.php

    protected function sslRedirection()
    {
          return;
    }

 

 

Share this post


Link to post
Share on other sites

je ne sais pas si j'avance, mais j'ai suivi tes consigne précisement et maintenant  j'ai une erreur 500 avec dans le log

[Thu Feb 20 07:25:20.945330 2020] [core:error] [pid 25226] [client 164.68.117.152:53027] AH00124: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
 

Une idée ?

Edited by axel584 (see edit history)

Share this post


Link to post
Share on other sites

Non tu n'avances pas puisque tu ne te donnes même pas les moyens d'avancer.

Nous donner de nouveaux symptômes alors que nous ne sommes pas dans ta tête et ne savons pas ce que tu as fait depuis 10 jours, c'est complètement inutile

Share this post


Link to post
Share on other sites

Oui, excuse moi. Je m'en suis rendu compte un peu tard après avoir écrit mon message :) 

Donc, j'ai fait exactement ce que tu m'as conseillé (changement des 3 constantes dans la table de configuration et changement de la méthode "sslRedirection" pour n'y mettre que "return").

Merci pour ton aide,

 

Axel

Share this post


Link to post
Share on other sites

Il y a forcément eu autre chose de changé pour que maintenant nous passions en boucle infinie de redirection

Share this post


Link to post
Share on other sites

Bonjour,

J'ai repris les choses à partir de zéro en réinstallant un prestashop à partir de zéro et j'ai un comportement étrange qui doit être lié au cache.

J'ai été sur la page d'accueil juste après avoir fait l'installation, j'ai eu mon erreur de "mixed-content" sur les feuilles de style, du coup, cela s'affichait de travers. J'ai changé les 3 variables en base et la méthode dans FrontController et j'avais toujours le problème de mixed-content. Du coup, j'ai essayé de revenir en arrière sur la méthode du FrontController, et cette fois ci, j'ai eu une erreur 500. J'ai remis la méthode du FrontController à vide (avec juste return;) et là, j'avais encore l'erreur 500...

Du coup, j'ai besoin de savoir comment vider le cache (sans avoir accès à l'interface du site)

 

Merci pour votre aide,

 

Axel

Share this post


Link to post
Share on other sites

Avec votre ftp il faut supprimer les dossiers dev et prod dans /var/cache

Il y a 11 heures, axel584 a dit :

comment vider le cache (sans avoir accès à l'interface du site)

 

 

Share this post


Link to post
Share on other sites

Un grand merci pour votre aide, mais je n'ai pas réussi à m'en sortir. J'ai réinstallé plusieurs fois avec des comportements étranges que je ne comprends pas. Soit des erreurs 500, soit des redirection en boucle, soit l'absence de feuille de style.

Je pense que je vais abandonner l'idée et trouver une autre solution (comme installer ma boutique sur un autre serveur que celui que j'ai actuellement).

Encore merci pour le temps que vous avez bien voulu passer pour m'expliquer le fonctionnement de Prestashop.

Axel

Share this post


Link to post
Share on other sites
En 27/2/2020 a las 3:07 PM, axel584 dijo:

Un grand merci pour votre aide, mais je n'ai pas réussi à m'en sortir. J'ai réinstallé plusieurs fois avec des comportements étranges que je ne comprends pas. Soit des erreurs 500, soit des redirection en boucle, soit l'absence de feuille de style.

Je pense que je vais abandonner l'idée et trouver une autre solution (comme installer ma boutique sur un autre serveur que celui que j'ai actuellement).

Encore merci pour le temps que vous avez bien voulu passer pour m'expliquer le fonctionnement de Prestashop.

Axel

Avez-vous corrigé l'erreur ?

Share this post


Link to post
Share on other sites

Non, je n'ai pas réussi. Du coup, j'ai même abandonné l'idée d'utiliser Prestashop.

On est une association, on n'a pas d'impératif financier. On envoie à nos membres un catalogue papier depuis très longtemps. J'aurai aimé qu'on puisse changer ça, mais notre architecture est un peu trop compliquée...

Axel

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More