Redirection vers pages en https

Bonjour, lorsqu’un visiteur accède à mon site par un lien en http, la redirection ne se fait pas vers la même page avec une url en https.
Pourtant mon site est bien configuré en https.

J’ai essayé d’ajouter à la fin du fichier .htaccess les lignes suivantes :

RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

pour forcer l’accès vers les pages en https… mais du coup mon site n’est plus du tout accessible.

Que faut-il que je fasse pour forcer l’accès vers les pages en https ?
Merci,
Bien cordialement,
Thierry

Bonjour,

ça devrait aller mieux avec :
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

Il y a une erreur dans ta ligne de réécriture.
Ce n’est pas ^ mais .*

RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

La règle de RealET fait la même chose.

1 « J'aime »

Merci pour les codes…

J’ai essayé avec celui de RealET ajouté tout en bas de mon fichier .htaccess… après avoir vidé le cache seule la page d’accueil du site est accessible, celles des articles et des rubriques ne s’affichent plus (objet non trouvé)…

Avec le code de Gilles ajouté tout en bas de mon .htaccess, aucune page du site n’est accessible (objet non trouvé)…

Je ne comprends pas pourquoi…

si ça peut aider, mon premier vhost redirige vers https
mon nom de domaine c’est funambule.org

<VirtualHost :80>
ServerName funambule.org
ServerAlias www.funambule.org
ServerAlias netdata
RedirectMatch ^(.
)$ https://funambule.org/$1

la balise qui referme le host ne s’affiche pas ici. porqué ?? mystère

Bonjour,

Mets la redirection au début du fichier pour que cela fonctionne.

Sinon dans ton fichiers mes_options.php :

if (empty($_SERVER[‹ HTTPS ›]) || $_SERVER[‹ HTTPS ›] === « off ») {
$location = ‹ https:// › . $_SERVER[‹ HTTP_HOST ›] . $_SERVER[‹ REQUEST_URI ›];
header(‹ HTTP/1.1 301 Moved Permanently ›);
header('Location: ’ . $location);
exit;
}

Bonjour,

il ne faut pas les ajouter à la fin du .htaccess, mais dans la zone « REGLAGES PERSONNALISES » située vers le début du fichier.
Sinon toutes les régles de redirection contenues dans ce fichier ne sont plus prises en compte

Bonjour,

Je viens d’essayer en mettant la redirection au début du fichier .htaccess… mais le résultat est toujours le même…

J’ai essayé également dans le fichier mes_options d’ajouter le code de Pierre… mais le résultat est pareil : j’ai une page blanche à la page du site…

A noter que dans le fichier mes_options, je n’avais jusqu’alors que ces lignes de codes suivantes :

<?php $GLOBALS['quota_cache'] = 250; ?>

Après avoir modifié mes_options puis l’avoir remis dans l’état initial, je ne pouvais plus m’identifier dans l’espace privée (problème de cookie)… J’ai résolu ce souci en supprimant le fichier mes_options…

J’ai ajouté la redirection au début de ma zone « Réglages personnalisés »… mais le résultat est toujours le même : j’ai accès à la page d’accueil mais pas au pages Rubriques et Articles…

Je pense que c’est cette ligne de mon .htaccess qui pose problème : RewriteEngine On (voir ci-dessous) :

##############################################################

RewriteEngine On

################ CONFIGURATION ######################

Si je la supprime je plante le site…

Cela ne sert plus il me semble sur les dernière version de spip.
Ensuite tu as écrit ton fichier comment ? http://spip.pastebin.fr/94716 ?

Bonjour Thierry ,

Chez moi ceci fonctionne comme un charme:

RewriteEngine On

RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

Cordialement

Le 24 août 2021 à 09:14, Thierry Sabot via Discuter de SPIP <noreply@discuter.spip.net> a écrit :

Thierry Sabot
Août 24

Bonjour,

Je viens d’essayer en mettant la redirection au début du fichier .htaccess… mais le résultat est toujours le même…

J’ai essayé également dans le fichier mes_options d’ajouter le code de Pierre… mais le résultat est pareil : j’ai une page blanche à la page du site…

A noter que dans le fichier mes_options, je n’avais jusqu’alors que ces lignes de codes suivantes :

<?php $GLOBALS['quota_cache'] = 250; ?>

Après avoir modifié mes_options puis l’avoir remis dans l’état initial, je ne pouvais plus m’identifier dans l’espace privée (problème de cookie)… J’ai résolu ce souci en supprimant le fichier mes_options…


Voir le sujet ou répondre à ce courriel pour répondre.

Pour se désabonner de ces courriels, cliquez ici.

J’ai juste copier/coller les lignes de codes ci-dessus…

Attention, le code n’est pas exact : les "" ont été remplacés par «  »
Et les '' par ‹  ›

Bonjour,

Moi j’utilise (sur plus de 40 sites):

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ {REQUEST_URI} [L,NE,R=301]

Au début du fichier .htaccess, force à la fois le https et le www. Des fois que ça résolve le souci.

PS: édité car je viens de m’apercevoir que la réponse que j’avais faite par email est en vrac.

– Pierre

···

Le 23/08/2021 à 18:05, Thierry Sabot via Discuter de SPIP a écrit :

Thierry Sabot
Août 23

Bonjour, lorsqu’un visiteur accède à mon site par un lien en http, la redirection ne se fait pas vers la même page avec une url en https.
Pourtant mon site est bien configuré en https.

J’ai essayé d’ajouter à la fin du fichier .htaccess les lignes suivantes :

RewriteCond %{HTTPS} !=on
RewriteRule ^ {HTTP_HOST}%{REQUEST_URI} [L,R=301]

pour forcer l’accès vers les pages en https… mais du coup mon site n’est plus du tout accessible.

Que faut-il que je fasse pour forcer l’accès vers les pages en https ?
Merci,
Bien cordialement,
Thierry

https://www.%1%


https://%

ton code :

RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(.)$ [NC]
RewriteRule ^(.
)$ https://%1/$1 [R=301,L]

collé au début de mon .htaccess n’empêche pas l’affichage de la page d’accueil mais celles des rubriques et articles… du coup je me demande si je n’ai pas un souci avec un bout de code dans les squelettes Articles et Rubriques

Bon, après mis à jour les squelettes Rubrique et Article de mon site avec ceux de la version Spip 4.0.0, les lignes de codes pour la redirection des urls en http vers celles en https de mon fichier .htaccess ne génèrent plus de page blanche ou d’erreur de page non trouvée…

Par contre, lorsqu’un visiteur arrive depuis un lien externe vers mon site en http (souvent depuis Wikipédia), la redirection en https ne fonctionne pas… c’est la page en http qui s’affiche. Pourquoi ? Je ne comprends pas ! Merci pour vos conseils… Bien amicalement, Thierry

Ce serait plus facile pour t’aider d’avoir :

  • la page Wikipedia concernée
  • Le lien concerné dans cette page
  • le contenu en entier de ton .htaccess (tu peux le recopier dans ton site dans un fichier htaccess_help.txt et nous donner son URL complète)

Parce que comme on dit ici, la boule de cristal est en panne :wink:

ok,

voici le lien vers la page de Wikipédia

Le lien vers mon site dans cette page Wikipédia est le lien externe tout en bas intitulé :
Histoire-Généalogie, André Dagneaux, Thierry Sabot, « Le livret ouvrier : 1803 » qui va vers http://www.histoire-genealogie.com/article.php3?id_article=154

Voici le lien vers le fichier htaccess_help.txt :
https://www.histoire-genealogie.com/htaccess_help.txt

Merci à tous pour votre aide…

Voici comment je l’ai inséré dans mon htaccess (dans mon cas j’efface aussi www le cas échéant)

### www
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
### https
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

En fait, tu as ton site qui est derrière un proxy nginx.
J’ai testé l’url http://www.histoire-genealogie.com/ dans https://httpstatus.io/
Et en cliquant sur le chevron à gauche du résultat, j’ai vu :
Server : nginx

Donc, il ne te reste plus qu’à contacter ton hébergeur pour lui demander comment faire chez lui pour avoir la redirection http vers https pour ton site.