HTTPS et redirections


5 messages dans ce sujet

Posté(e) · Signaler ce message

Bonjour, 

J'ai une version Peel 6 et essaie de passer en HTTPS mais une redirection "301 Moved Permanently"  genère une boucle et une erreur "ERR_TOO_MANY_REDIRECTS"

Il n'y a pas de redirection coté hébergeur, donc cela vient du PHP.

Apparemment la variable $wwwroot dans info.inc.php car lorsqu'on la modifie, la page d'accueil se charge en https (mais tous les liens deviennent mauvais évidemment)

Quelqu'un a-t-il eu ce problème ou une idée de sa résolution?

Merci

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

sur les versions 6 vous devez mettre à jour une ligne dans le fichier configuration.inc.php. Il faut remplacer vers la ligne 188

    if (empty($_POST) && String::substr_count($GLOBALS['wwwroot'], '/') == 2 && String::strpos(String::strtolower(rawurldecode($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'])), str_replace('http://', '', String::strtolower(rawurldecode($GLOBALS['wwwroot'])))) === false && String::strpos(str_replace('http://', '', String::strtolower(rawurldecode($GLOBALS['wwwroot']))), String::strtolower(rawurldecode($_SERVER['HTTP_HOST']))) !== false) {

par

    if (empty($_POST) && String::substr_count($GLOBALS['wwwroot'], '/') == 2 && String::strpos(String::strtolower(rawurldecode($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'])), str_replace(array('http://', 'https://'), '', String::strtolower(rawurldecode($GLOBALS['wwwroot'])))) === false && String::strpos(str_replace(array('http://', 'https://'), '', String::strtolower(rawurldecode($GLOBALS['wwwroot']))), String::strtolower(rawurldecode($_SERVER['HTTP_HOST']))) !== false) {

La modification consiste à remplacer 'http://' par array('http://', 'https://') dans ce test.

A la fin de configuration.inc.php, vous pouvez aussi ajouter le bloc de code ci dessous pour redireger les anciennes URLs par les nouvelles :

	if (!defined('IN_CRON') && !defined('IN_IPN') && (empty($_SERVER['HTTPS']) || $_SERVER['HTTPS'] == 'off') && strpos($GLOBALS['wwwroot'], 'https://') === 0 && strpos($_SERVER['PHP_SELF'], 'sites.php') === false && strpos($_SERVER['PHP_SELF'], 'ipn.php') === false && strpos($GLOBALS['wwwroot'], $_SERVER['HTTP_HOST']) !== false) {
		// On accède en http et non pas en https à un site explicitement configuré en https
		// Attention : on perd les POST si il y en avait, mais on ne veut pas pour des raisons de sécurité exclure le cas où il y aurait des POST
		// On ne souhaite pas faire la redirection si le nom de domaine utilisé n'est pas le domaine principal. Il faut faire la redirection uniquement si le $_SERVER['HTTP_HOST'] est présent dans wwwroot
		redirect_and_die(str_replace('http://', 'https://', get_current_url()), true);
	}

ce bloc de code doit être placé juste avant la dernière accolade fermante à la fin du fichier.

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Ca marche, merci beaucoup!

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour

Le code ajouté à la fin de configuration.inc.php  ne semble pas avoir d'effet pour rediriger automatiquement le HTTP vers le HTTPS  

J'ai donc inclus dans le .htaccess les lignes :

 RewriteCond %{SERVER_PORT} 80
 RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

Problème : les URL ré-écrites dans le htaccess ne sont pas redirigées vers leurs equivalents https mais retournent vers la récine du site

Avez vous une solution pour que ces URL ré-écrites soient redirigées automatiquement et que les pages indéxées par Google ne soient pas perdues?

Merci d'avance

Partager ce message


Lien à poster
Partager sur d’autres sites

Posté(e) · Signaler ce message

Bonjour,

Pour répondre à votre question et clarifier le sujet :

* Dans une version 7 et plus de PEEL :

Pour passer en https vous devez changer l’URL du site, soit via l’administration, soit dans le fichier lib/setup/info.inc.php
Les redirections sont gérées ensuite automatiquement en PHP et vous n’avez aucune modification à faire, notamment du .htaccess

* Dans votre cas avec une très ancienne version de PEEL : nous vous avons donné des bouts de code pour faire la même chose que dans une version récente. Pour que ça marche vous devez avoir correctement configuré wwwroot et que HTTP_HOST soit configuré correctement sur votre hébergement. Je vous invite à bien lire le code donné, qui est à adapter éventuellement au contexte de votre version et vous pouvez faire des var_dump pour comprendre ce qui se passe. Si vous avez besoin d’une analyse et de développement spécifique à votre situation, notre service commercial est disponible au 01 75 43 62 97.

Cordialement

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant

Twitter Advisto ecommerce

Facebook PEEL Shopping