Aller au contenu
Alex

Passage en HTTPS, quid du htaccess ?

Recommended Posts

Comme déjà expliqué, je ne trouve aucune solution .htaccess qui fonctionne chez YULPA.

Chez d'autres, je peux obtenir cette redirection soit seulement avec .htaccess, soit avec .htaccess et le "panel"/l'administration.

Il y a 5 heures, Simon DUJANCOURT a dit :
Le 22/05/2017 à 16:17, Christophe a dit :

Ici je ne peux à priori pas utiliser l'un avec l'autre. ]

 

Ça concerne # 9. et # 13. (ce qui est entre crochets).

J'ai essayé pas mal de codes différents, je n'arrive pas à en faire fonctionner chez Yulpa.

Avec Let's Encrypt/https, le fait de devoir éviter le "duplicate content", etc., beaucoup de sites doivent maintenant rediriger vers https:// ou https://www (si leur site est avec www., et il y en a beaucoup).
Je n'arrive pas à faire rediriger les 3 autres vers https://www.

Je viens demander de l'aide car les codes habituels et bien d'autres essayés (solutions Forums CMS, Stack Overflow, etc.) ne semblent pas fonctionner pour une raison ou une autre ici.

Je commence à me dire que j'aurais dû essayer juste quelques mois avant, je suis bloqué avec ce problème/détail. 

Modifié par Christophe

Partager ce message


Lien à poster
Partager sur d’autres sites

Il n'y a aucune raison pour que cela ne fonctionne pas.

MAIS il faut bien prendre en compte : 

  • que lorsque vous changez le mode de publication sur iWal, il y a un temps de prise en compte pour que tous les serveurs soient à jours, cela peut prendre plus de 10 minutes ;
  • que lorsque vous modifiez votre htaccess, il peut également y avoir un délai, de quelques secondes 

Partager ce message


Lien à poster
Partager sur d’autres sites

Vous m'avez dit que pour mon cas il fallait que sur iWal le domaine soit défini en HTTP+HTTPS, je l'ai donc remis ainsi lundi.
Quand je changeais le mode de publication, j'attendais bien que ça soit marqué ok/positif tout en haut.

Je viens de réactiver ça (avec RewriteBase / au cas où ça soit nécessaire) il y a environ 15-20 mns :

# -----------------------------------------------------------------------------------------------
  # 9. If you only want to allow HTTPS, uncomment the RewriteCond and RewriteRule lines below.
  # -----------------------------------------------------------------------------------------------
  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

ET

# -----------------------------------------------------------------------------------------------
  # 13. OPTIONAL: Redirect users to the 'www.' version of the site (uncomment to enable).
  # For example: http://processwire.com/ would be redirected to http://www.processwire.com/
  # -----------------------------------------------------------------------------------------------

  RewriteCond %{HTTP_HOST} !^www\. [NC]
  RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

Mais les redirections ne fonctionnent pas comme elles sont censées marcher, et comme ça marche ailleurs.

Firefox me donne :

The page isn’t redirecting properly

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

    This problem can sometimes be caused by disabling or refusing to accept cookies.

Chromium :

La page www.nomdedomaine.fr ne fonctionne pas

www.nomdedomaine.fr vous a redirigé à de trop nombreuses reprises.



Essayez de supprimer les cookies..
ERR_TOO_MANY_REDIRECTS
Opera :
Cette page ne fonctionne pas

nomdedomaine.fr vous a redirigé à de trop nombreuses reprises.

Je n'ai aucun moyen de savoir pourquoi ça ne fonctionne pas chez vous.

J'ai aussi essayé plusieurs autres règles/directives...
 
Je nettoie le cache, les cookies, etc.
 
Pour le .htaccess, je n'essaie pas seulement une fois quelques secondes après le changement.
 
N'avez-vous pas du code à insérer dans .htaccess à me proposer ou une autre solution pour que ça fonctionne spécifiquement chez vous ?
 
Merci d'avance
Modifié par Christophe

Partager ce message


Lien à poster
Partager sur d’autres sites

OK je ne comprends pas pourquoi cela n'est pas pris en compte : 

RewriteCond %{HTTPS} off

Je vous invite à modifier comme cela : 

RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off

Afin d'avoir au total : 

RewriteEngine on
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
# [NC] is a case-insensitive match
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

J'essayerais de comprendre pourquoi le HTTPS seul ne suffit pas, de même sur le check du port cela ne fonctionne pas alors qu'on a bien un SetEnv HTTPS sur le port 443 :( 

Si vous souhaitez tester le résultat : 

http://poncini.me

http://www.poncini.me 

https://poncini.me 

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Je vous remercie énormément Aurélien. Ça marche.

Je cherchais des solutions de mon côté. J'allais presque renoncer à la redirection vers https://www.nomdedomaine.tld.
Car, si ma mémoire est bonne/sauf erreur, il n'y avait pas ce problème (ou le même genre de problèmes) pour une redirection vers https://nomdedomaine.tld.

J'ai juste rajouté votre code en un bloc (sauf RewriteEngine on déjà activé).

J'avais remarqué RewriteCond %{HTTP:X-Forwarded-Proto} !https quelque part, ça concernait - entre autres - le CLOUD, sauf erreur.

En enlevant juste RewriteCond %{HTTP:X-Forwarded-Proto} !https, ça ne marche plus de nouveau.

Je viens de trouver ça notamment en cherchant rapidement :

Citation

When writing new or importing existing rewrite rules for HTTP/HTTPS redirection on the ... platform, you also need to check for the presence and value of the HTTP:X-Forwarded-Proto header. As Apache runs on separate servers from your load balancers (where incoming requests are received), Apache does not know if a request was made over HTTP or HTTPS. Thus, when the balancers pass requests on to Apache, it sets the HTTP:X-Forwarded-Proto header to "http" or "https". Without checking for this header, HTTP/HTTPS redirect rules will not work as expected.

Bonne fin de semaine !

ProcessWire : @Christophe

Modifié par Christophe
  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Meilleure(s) solution(s) (1 seule redirection/pas de message d'erreur redirection - pour les 4 variantes - au lieu de 2-3 signalés par Google Speed Insights selon les variantes : http://, http://www, https:// ou https://www).

Avec le(s) code(s) utilisés par défaut par le CMS en les décommentant et qui marchai(en)t chez un autre hébergeur, il y avait aussi le même problème.

Ça a été résolu chez l'autre hébergeur avec :

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.domainname.tld/$1 [R=301,L]

et

RewriteCond %{HTTP_HOST} ^domainname.tld$
RewriteRule ^(.*) https://www.domainname.tld/$1 [QSA,L,R=301]

Pour Yulpa, il faut juste rajouter
RewriteCond %{HTTP:X-Forwarded-Proto} !https
au dessus de
RewriteCond %{SERVER_PORT} 80

J'ai testé certaines "variations", mais ça semble marcher moins bien ou ça ne marche plus...

Tel que c'est, ça marche bien. Et google, entre autres, est content.

NB : chez l'autre hébergeur, en testant, tout inverser pour utiliser la variante non-www au lieu de la www a été simple.
Et google speed insights était content aussi.
Je n'ai pas testé pour Yulpa avec RewriteCond %{HTTP:X-Forwarded-Proto} !https en plus.

À priori ça devrait marcher aussi, mais on ne sait jamais.

Modifié par Christophe
Remplacement de Rewritecond par RewriteCond et de Rewriterule par RewriteRule dans la seconde zone de code (ça marchait aussi en minuscule)
  • Upvote 3

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


×