Jump to content

Passage en HTTPS, quid du htaccess ?


Guest

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. 

Edited by Christophe
Link to comment
Share on other sites

  • Administrators

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 
Link to comment
Share on other 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
Edited by Christophe
Link to comment
Share on other sites

  • Administrators

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
Link to comment
Share on other 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

Edited by Christophe
  • Upvote 1
Link to comment
Share on other sites

  • 2 weeks later...

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.

Edited by Christophe
Remplacement de Rewritecond par RewriteCond et de Rewriterule par RewriteRule dans la seconde zone de code (ça marchait aussi en minuscule)
  • Upvote 2
Link to comment
Share on other sites

  • 1 year later...

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...